while ,do while,for,goto那个比较好?
rt
[解决办法]
各有特点,适当选用,避免程序过于呆板
[解决办法]
例如:
for比较适合单个迭代器
while适合比较复杂的循环条件+比较复杂的循环增量,例如:
for (int i=0,int j=0,int k=0;i <22&&j <33&&k <99;++i,++j,++k)
条件长,忽视化长,循环增量长,看上去不舒服,转换成while 就灵活多了
int i=0,j=0,k=0;
while (i <22&&j <33&&k <99)
{
++i;
...//可能这里还有些语句,这样比for更灵活
++j;
++k;
}
同理do..while 适合先做再判断的模型
而goto适合复杂的嵌套流跳出当然会降低可读性,但是必要的时候还是可以使用的,并不是完全禁止~
[解决办法]
在有累加器的情况下,也就是有i++这种情况 尽量使用for循环 因为编译器会进行优化,所以速度比较快。
while循环一般用于当循环到达某个条件结束循环。
do-while一般情况下也不使用,因为第一次循环对于错误数据没有判断。
goto语句只有在调试的时候才使用,其他情况下就不要使用了,破坏了程序的结构。
[解决办法]
根据需要选择,没有说哪个更好,
比如有时需要先判断再循环,就可以用while
而先执行后判断,就可以用do...while
goto不提倡用
[解决办法]
还有号称
for (;;)
比while (1)快~
[解决办法]
没有好不好只分,它们之所有存在当然有它们使用的理由
不过很多人都说不建议使用goto,其实如果自己把流程
控制好也无所谓
[解决办法]
性能上对于现在的编译器,没有任何区别。主要区别在于代码可读性。
一般来说,用goto的可读性不好,需要谨慎使用。
而其他几个,哪个方便,哪个更可读就用哪个
[解决办法]
以前习惯用for,后来编程中,发现用for会先走一边循环体,while就不会,所以后来就while和for结合用,舒服的很。
do-while和goto我目前还没用到过。。。。
[解决办法]
1) 四种循环都可以用来处理同一个问题,一般可以互相代替。但一般不提倡用goto型循环。
2) while和do-while循环,循环体中应包括使循环趋于结束的语句。for语句功能最强。
3) 用while和do-while循环时,循环变量初始化的操作应在while和do-while语句之前完成,而for语句可以在表达式1中实现循环变量的初始化。
[解决办法]
for循环 一般适合初始化较多的循环
while 和for 查不多 只是把循环语句写在 循环体里面
do while 和while 一样
goto 一般都不用,程序混乱,可读性差
[解决办法]
各有各的用处
for 跟 while 差不多(用的最多)
do while用于至少要执行代码段一次的情形
goto 尽量避免使用,当然也有需要使用它的时候
[解决办法]
goto <while <do~while <for;
结贴吧
[解决办法]
加一句,视情况而定,比如有时错误处理的确goto会有出其不意的效果:)
[解决办法]
各有各的方便之处,主要看你的语意.
比如你的循环执行次数是一定的,一搬就用for(i=1; i <=n; ++i)这种形式.
如果你的循环的次数是需要用一些关系来表示的,一般就用:
while (xxx+yyy < kkk) 这样来写.
goto可以用其它的方式来代替,不提倡用.
还有就是,也许你不信,但是 do while , while 都可以写成等价的for 语句.
所以其实就语法上来说,只有for就足够,但是就表达方式来说,while和do while有它们的优点.有时候用它们程序代码更清晰.
[解决办法]
The code is probably easier to read in a do/while loop.
[解决办法]
while,for 和do while的使用取决于实际情况的需要,goto建议不要使用的
[解决办法]
这些都是根据实际需要来决定的.
goto并不完全是坏的.
像在汇编中没有jmp就会是一件非常麻烦的事情.
[解决办法]
通常,for while 可以替换用,功能类似。
for while 和 do while的使用,根据逻辑的设定来选择。
通常不建议用goto,这主要是因为它会降低程序的可读性。
[解决办法]
个人感觉还是for循环比较好,因为如果语句有while的循环那它一定也可以用for循环的代替的。
但反过来就不行了
[解决办法]
while ,do while,for,goto
===========================
在固定数量的循环~用while,for~会比较好
在有条件转移循环~用while ,do while,for~会比较好
在无条件转移~用goto~会比较好
[解决办法]
goto快
一样好
[解决办法]
支持一下,这个问题大家都回答的很清楚了。
用goto会导致程序的结构不够清晰,不用为好。
do while至少要执行一遍程序。
while和for完全可以等价使用,到底用哪个以代码可读性为准则。
[解决办法]
还有号称
for (;;)
比while (1)快~
________________
可信否?数据!
==============================================
可信~我用的是TC
在TC下我试验了~
for(; ;)相当于~一条goto
while (1)相当于~两条goto
上边~我想是编译器自动优化的结果吧~
如果编译器不优化~
按我的理解是~
for(; ;)相当于~一条goto~不需要判断
while (1) 每循环一次~都要判断1是不是等于零~如等于零就结束循环~
-------------------------------------------
goto跳出多重循环~是很有用的~
while ,do while,for,goto
它们都可以互相模拟对方得到相同结果~但是效率并不相同~
一般情况下用for和while会比较好
[解决办法]
想写世界最高效的汇编程序就要大量地使用goto,一个程序中至少要500个goto。想写好代码就要一个程序不能超过3个goto,这是我定的国际标准,正在等待您的批准以便以后在全球施行呢,哈哈哈哈哈哈哈
[解决办法]
楼上的~
我和一些朋友只不过~建议~有必要才应该使用~goto~
并不没有说~非得处处用goto~
我说的~只不过~把自己知道的告诉给新人~让他自己作参考~用不用是别人自己的事~
C语言我只不过是个半入门的初学者~
您都可以定什么的国际标准了~都那么厉害了~又何需我来批准呢~
虽然我只是汇编的初学者~但还是知道~
goto是一条JMP指令~
它在固定数量循环的情况下~远不如~LOOP指令好~
而您说什么要大量使用goto~才能写出最高效的程序~那您真的是太幽默了~
我看您还是回到火星上继续~定您的那什么国际标准吧~
那时候~您的什么国际标准~想让C语言变得名符其实的高级语言~都任由您把C的指针和goto给去掉~
那时候~您的什么国际标准~想把汇编改得~只有JMP(goto)指令一个~
都不会有人说您的~真的~不会有人说您的~
我保证~也无需谁的批准~您的什么国际标准~都能在火星上全球施行~
呵呵~哈哈哈~呵呵~哈哈哈~哈哈哈~
(好像电视电影里的反面角色都是这么抑扬顿挫的笑~可我是好人)
好了~您也无需作什么解释或感谢了~(我没那么多的时间去网吧上网~看您那无聊的解释)
[解决办法]
我不知道别人怎么用,其实这几个都可以相互代替,我用的比较多的是for和while,看你对语言的感觉吧。效率上我认为是一样的。