C中的FOR循环,条件部分

tzdcorbm  于 2023-03-07  发布在  其他
关注(0)|答案(6)|浏览(159)

我有个小问题想澄清一下。
在ZX-Spectrum BASIC编译器中,存在FOR TO STEP NEXT循环,其中TO是无条件的:

10 FOR i=1 TO 5 STEP 1

我在C中尝试过类似的做法

for (i=1; i==5; i++);

当然循环也不起作用(==在这里永远不会为真)......所以问题是:
就是在C的FOR循环中我们应该总是使用一个CONDITION来停止循环(我是指FOR语句括号中的CONDITION),就像FOR(i=0;i〈6; i++);

c86crjj0

c86crjj01#

正确翻译为:

for i = 1 to 5 step 1

将是:

for (i = 1; i <= 5, i++)

换句话说,在连续迭代中,控制变量设置为12345的循环运行五次。
您还可以使用其他变体,例如不同的条件运算符和不同的终止值,但所显示的变体最符合BASIC变体,同时在步骤可能不止一个(例如for i = 1 to 4 step 2)的情况下仍然可以保护您。
请记住,C数组是从0开始的,所以如果你使用i来访问一个数组,它需要从0运行到n-1,而不是从1运行到n。如果你只是想把变量用于其他目的(比如打印数字1到5,包括1和5),1..n变量是可以的。

xhv8bpkk

xhv8bpkk2#

你的代码中有两个问题,你不应该使用;在循环头后面,你可以在条件部分使用〈或〈=,如下所示:

for(int i=1; i<=5; i++){}

所以它应该是一个条件,但你不必使用不等式,你可以使用任何其他条件,但它应该完成一个时间

w6lpcovy

w6lpcovy3#

是的,条件必须有"〈"或"〉"或"〉="或"〈="因为我们需要应用一个限制到循环.当你使用"=="循环将测试如果数字等于5或不和当然0是不等于5因此循环将被终止.当你使用"〈"循环将检查如果"i"的值小于5还是不小于5。你也把";"在不正确的for循环语句之后,将不会执行for循环大括号内的任何语句。

yfjy0ee7

yfjy0ee74#

你可以用

for (i = 1; i != 6; i++);

但是最好使用i = 0 ... i < 5,以防你在循环内部修改i,它也传达了你做得更好的地方。

omhiaaxx

omhiaaxx5#

对于在for循环中使用条件语句没有任何限制。
您还可以在for循环体中使用此条件语句,如下所示......

for(int i=0;;i++)
{
      if(i>=5)
      {
         break;// to break the loop
      }
}

如果在for循环或for循环体中不使用条件语句,则循环将进入无限状态,如下所示......

for(int i=0;;i++)
{
    //any statements
}

因为在for循环中,所有三个部分都是可选的(初始化、条件、递增/递减)

int i=0
for(;;)
{
      if(i>=5)
      {
           //any statements
      }

      i++
}
mbjcgjjk

mbjcgjjk6#

循环条件不是必需的,您可以将循环编写为

for(int i=0;;i++)
{
//body
}

但请注意,循环体应该包含一些break语句,否则循环将执行无限时间

相关问题