FOR循环C,条件部分

时间:2013-07-27 07:43:23

标签: c basic zxspectrum

小问题只是为了澄清。

在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 ++);

4 个答案:

答案 0 :(得分:4)

正确翻译:

for i = 1 to 5 step 1

将是:

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

换句话说,循环运行五次,控制变量在连续迭代时设置为12345

您可以使用其他变体,例如不同的条件运算符和不同的终止值,但显示的最多匹配BASIC变体,同时在您的步骤可能多于一个的情况下仍然保护您(例如{{1 }})。

请记住,C数组是基于0的,因此,如果您使用for i = 1 to 4 step 2来访问数组,则需要从i运行到0,而不是{ {1}}到n-1。如果您只是想将变量用于其他目的(例如打印出数字1到5),那么1变体就可以了。

答案 1 :(得分:1)

您可以使用

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

但如果你在循环中改变i = 0 ... i < 5,最好使用i。它还可以传达您正在做得更好的事情。

答案 2 :(得分:1)

您必须在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循环中,所有三个部分都是可选的(初始化,条件,incri / decri)

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

      i++
}

答案 3 :(得分:0)

循环条件不是必需的,你可以编写像

这样的循环
for(int i=0;;i++)
{
//body
}

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