正常下是for (i = 0;i < j ; i++)
还能怎样写?我看到有个写成 for (i = 0,t = 0 ; i <j; i ++)
还能写两个变量初始值? 那结束条件跟循环递增呢?也能写多个?
for里面表达的方式还有其他吗
for里面分三个部分,都是表达式
第一个部分的表达式的值是被丢弃的。i=0,t=0的值是0,不过这个0没有用
第二个部分的表达式的值是用来判断是否继续循环的,0表示不继续,其他表示继续
第三个部分的表达式的值也是被丢弃的。
所以所谓什么初值啊啥的,只是一般的习惯用法,不按照这个也没关系。你甚至可以这么写
i = 1;
for(; i <= 5; ++i) printf("%d", i);
或者
i = 0;
for(; i++, i <= 5; printf("%d", i));
总之满足上面说的三个要求就可以了。里面要出现函数调用啊什么的也没有关系
不过因为写出来代码太诡异而被看代码的人骂就得不偿失了
第一个部分的表达式的值是被丢弃的。i=0,t=0的值是0,不过这个0没有用
第二个部分的表达式的值是用来判断是否继续循环的,0表示不继续,其他表示继续
第三个部分的表达式的值也是被丢弃的。
所以所谓什么初值啊啥的,只是一般的习惯用法,不按照这个也没关系。你甚至可以这么写
i = 1;
for(; i <= 5; ++i) printf("%d", i);
或者
i = 0;
for(; i++, i <= 5; printf("%d", i));
总之满足上面说的三个要求就可以了。里面要出现函数调用啊什么的也没有关系
不过因为写出来代码太诡异而被看代码的人骂就得不偿失了
温馨提示:答案为网友推荐,仅供参考
第1个回答 2013-04-16
for的表达式其实就是有3个表达式,分别用分号隔开
先运行i=0;i<j;前面2个表达式,满足条件了就运行下面的语句,
最后才运行最后一个表达式i++
然后再回去i=0;i<j;前面2个表达式那
就是这样一直循环
表达的方式,有很多,具体看自己的需求~
希望帮到你哈
先运行i=0;i<j;前面2个表达式,满足条件了就运行下面的语句,
最后才运行最后一个表达式i++
然后再回去i=0;i<j;前面2个表达式那
就是这样一直循环
表达的方式,有很多,具体看自己的需求~
希望帮到你哈
第2个回答 2013-04-16
初始化、条件和变量都能写多个
我还可以这样写:
for(;1;)
这个等同于while(1)
我还可以这样写:
for(;1;)
这个等同于while(1)
第3个回答 2013-04-16
能写多个。不过容易降低程序的可读性。一般都不会用到那么多
第4个回答 2013-04-16
for循环语句里三部分,用两个分号隔开,每部分都可以是0个、一个或多个表达式,多个表达式的话用逗号分开。前面部分只在循环体开始之前执行一次。中间部分取最后一个表达式的结果作为判断条件,其结果为0表示条件不满足退出循环,非0表示条件满足继续循环。后面部分是在循环体每次结束后执行的表达式。
这里的表达式可以是任意表达式,
for(;;)
for(x=y, z=func(); x=z, y=x+1; x=func(), z = func(y))
等等,都可以。
这里的表达式可以是任意表达式,
for(;;)
for(x=y, z=func(); x=z, y=x+1; x=func(), z = func(y))
等等,都可以。