小问题只是为了澄清。
在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 ++);
答案 0 :(得分:4)
正确翻译:
for i = 1 to 5 step 1
将是:
for (i = 1; i <= 5, i++)
换句话说,循环运行五次,控制变量在连续迭代时设置为1
,2
,3
,4
和5
您可以使用其他变体,例如不同的条件运算符和不同的终止值,但显示的最多匹配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语句,否则循环执行无限时间