c语言中for可以完全取代他的妹妹们吗?

c语言的循环 for while do···while 他们三个,for 可以完全取代 whiledo···while 吗?还有就是C语言挺有意思的既然 for 循环这么厉害什么都能干了,为什么还要有 whiledo while 啊?

阅读 6.9k
5 个回答

语法上来看是可以替换的… 只是用着不方便吧…

for一般需要一个临时变量i

while和do...while一般不需要,当你循环时不需要取得当次循环的下标时,不需要用for

do...while适用于无论条件如何至少执行一次的情况

说多了都是code style,当你无需知道索引时,还必须搞一个无用变量i,看起来会很不爽

说要取代的话应该是可以取代的,但是其他的存在这么久了一定有它的道理,也许是为了方便吧。

话说我从来都是只用for。。。任何语言都是

for可以完全取代do while,但是取代不了while。这是可读性问题导致的,根据"The Art of Readable Code"一书,不管什么情况,都不用do while,因此本人从来不用do while。而在一些情况下,使用while会比使用for可读性更好,读代码的人在看到while的时候会想到“当xxx的时候”,而看到for的时候就不会。虽然for用的是最多的,但是还是替代不了while。