我有个小问题想澄清一下。在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++);
c86crjj01#
正确翻译为:
for i = 1 to 5 step 1
将是:
for (i = 1; i <= 5, i++)
换句话说,在连续迭代中,控制变量设置为1、2、3、4和5的循环运行五次。您还可以使用其他变体,例如不同的条件运算符和不同的终止值,但所显示的变体最符合BASIC变体,同时在步骤可能不止一个(例如for i = 1 to 4 step 2)的情况下仍然可以保护您。请记住,C数组是从0开始的,所以如果你使用i来访问一个数组,它需要从0运行到n-1,而不是从1运行到n。如果你只是想把变量用于其他目的(比如打印数字1到5,包括1和5),1..n变量是可以的。
1
2
3
4
5
for i = 1 to 4 step 2
i
0
n-1
n
1..n
xhv8bpkk2#
你的代码中有两个问题,你不应该使用;在循环头后面,你可以在条件部分使用〈或〈=,如下所示:
for(int i=1; i<=5; i++){}
所以它应该是一个条件,但你不必使用不等式,你可以使用任何其他条件,但它应该完成一个时间
w6lpcovy3#
是的,条件必须有"〈"或"〉"或"〉="或"〈="因为我们需要应用一个限制到循环.当你使用"=="循环将测试如果数字等于5或不和当然0是不等于5因此循环将被终止.当你使用"〈"循环将检查如果"i"的值小于5还是不小于5。你也把";"在不正确的for循环语句之后,将不会执行for循环大括号内的任何语句。
yfjy0ee74#
你可以用
for (i = 1; i != 6; i++);
但是最好使用i = 0 ... i < 5,以防你在循环内部修改i,它也传达了你做得更好的地方。
i = 0 ... i < 5
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++ }
mbjcgjjk6#
循环条件不是必需的,您可以将循环编写为
for(int i=0;;i++) { //body }
但请注意,循环体应该包含一些break语句,否则循环将执行无限时间
6条答案
按热度按时间c86crjj01#
正确翻译为:
将是:
换句话说,在连续迭代中,控制变量设置为
1
、2
、3
、4
和5
的循环运行五次。您还可以使用其他变体,例如不同的条件运算符和不同的终止值,但所显示的变体最符合BASIC变体,同时在步骤可能不止一个(例如
for i = 1 to 4 step 2
)的情况下仍然可以保护您。请记住,C数组是从0开始的,所以如果你使用
i
来访问一个数组,它需要从0
运行到n-1
,而不是从1
运行到n
。如果你只是想把变量用于其他目的(比如打印数字1到5,包括1和5),1..n
变量是可以的。xhv8bpkk2#
你的代码中有两个问题,你不应该使用;在循环头后面,你可以在条件部分使用〈或〈=,如下所示:
所以它应该是一个条件,但你不必使用不等式,你可以使用任何其他条件,但它应该完成一个时间
w6lpcovy3#
是的,条件必须有"〈"或"〉"或"〉="或"〈="因为我们需要应用一个限制到循环.当你使用"=="循环将测试如果数字等于5或不和当然0是不等于5因此循环将被终止.当你使用"〈"循环将检查如果"i"的值小于5还是不小于5。你也把";"在不正确的for循环语句之后,将不会执行for循环大括号内的任何语句。
yfjy0ee74#
你可以用
但是最好使用
i = 0 ... i < 5
,以防你在循环内部修改i
,它也传达了你做得更好的地方。omhiaaxx5#
对于在for循环中使用条件语句没有任何限制。
您还可以在for循环体中使用此条件语句,如下所示......
如果在for循环或for循环体中不使用条件语句,则循环将进入无限状态,如下所示......
因为在for循环中,所有三个部分都是可选的(初始化、条件、递增/递减)
mbjcgjjk6#
循环条件不是必需的,您可以将循环编写为
但请注意,循环体应该包含一些break语句,否则循环将执行无限时间