【问题标题】:How can i increment a variable with 4 in a for loop如何在 for 循环中用 4 递增变量
【发布时间】:2013-11-24 11:03:06
【问题描述】:

我有这个 for 循环

for (i = 0, j = N-1; i < j; ++i , --j )

我想用 4 而不是 1 增加 i,用 4 而不是 1 减少 j。

类似的东西,但我不知道sintax:

for (i = 0, j = N-1; i < j; 4+=i , 4-=j )

谢谢

【问题讨论】:

    标签: c loops for-loop increment decrement


    【解决方案1】:

    换一种方式试试:i += 4。这是i = i + 4 的简写。现在你已经写了4 += i,这意味着4 = 4 + i——这当然没有意义。

    【讨论】:

    • 是的。人们似乎对 += 感到困扰,大概是因为老师没有很好地解释它。将 x += 1 视为在 x 上调用 += 方法。 x.+= 方法将其参数的值添加到 x。因此,x += 1 表示使用 x.add_on(1),或“取 x,并将值 1 添加到它上面”。
    【解决方案2】:

    试用:

    对于 (i = 0, j = N-1; i

    语法是从后到前的,只需将 4+=i 翻转为 i+=4,并将 4-=j 翻转为 j-=4

    【讨论】:

    • 但是,++i 和 i++ 不同
    • @user2399087:仅在特定情况下。对于您的循环计数器使用,它们实际上是相同的。
    【解决方案3】:

    而不是写:

    for (i = 0, j = N-1; i &lt; j; 4+=i , 4-=j )

    这样写:

    for (i = 0, j = N-1; i &lt; j; i+=4 , j-=4 )

    当你有以下代码时:

    i += 5;

    基本意思是一样的:

    i = i + 5;

    因此 5 += i 的含义与以下相同:

    5 = 5 + i;

    这显然没有任何意义,因为 5 不是变量,因此您不能将值存储到其中。

    【讨论】:

      【解决方案4】:

      这只是语法糖。写j=j-4

      【讨论】:

        【解决方案5】:

        试试这个:

        for (i=0,j=N-1;i&lt;j;i+=4,j-=4)

        或(第一次更容易理解)

        for (i=0,j=N-1;i&lt;j;i=i+4,j=j-4)

        代替:

        for (i = 0, j = N-1; i &lt; j; 4+=i , 4-=j )

        它会尝试将值 4+i (4=4+i) 分配给 4 并在稍后分配相同的值 (4=4-j):

        [错误] 左操作数需要左值

        【讨论】:

          猜你喜欢
          • 2017-01-26
          • 1970-01-01
          • 2011-10-15
          • 2020-02-10
          • 2020-06-11
          • 1970-01-01
          • 2014-09-10
          • 2020-01-21
          • 2023-04-01
          相关资源
          最近更新 更多