Bjarne Stroustrup(C++创建者)曾说过他避免使用"do/while"循环,而更喜欢用"while"循环编写代码.[见下面的引文.]
听到这个,我发现这是真的.你的想法是什么?是否有一个例子,"do/while"比使用"while"更清晰,更容易理解?
回答一些答案:是的,我理解"do/while"和"while"之间的技术差异.这是一个关于可读性和构造涉及循环的代码的更深层次的问题.
让我问另一种方式:假设你被禁止使用"do/while" - 是否有一个现实的例子,这会让你别无选择,只能使用"while"编写不干净的代码?
从"The C++ Programming Language",6.3.3:
根据我的经验,do-statement是错误和混乱的根源.原因是它的主体总是在评估条件之前执行一次.然而,为了使身体正常工作,非常像条件的东西必须在第一次通过时才能保持.比我想象的更频繁,我发现在程序第一次编写和测试时,或者在修改之前的代码之后,条件不能按预期保持. 我也更喜欢条件"我可以看到它的前方".因此,我倾向于避免做声明.-Bjarne
这是一个非常主观的问题,所以我会更具体.有没有时间do-while循环比正常的while循环更好的编码风格?
例如
int count = 0;
do {
System.out.println("Welcome to Java");
count++;
} while (count < 10);`
Run Code Online (Sandbox Code Playgroud)
在评估do语句(也就是强制do语句至少运行一次)之后检查while条件似乎没有意义.
对于像我上面的例子那样简单的东西,我会想象:
int count = 0;
while(count < 10) {
System.out.println("Welcome to Java"); count++;
}
Run Code Online (Sandbox Code Playgroud)
通常被认为是以更好的写作风格写成的.
任何人都可以为我提供一个工作示例,说明什么时候将do-while循环视为唯一/最佳选择?你的代码中有do-while循环吗?它起什么作用?你为什么选择do-while循环?
(我有一种深刻的感觉,do-while循环可能在编码游戏中有用.如果我错了,请纠正我,游戏开发者!)
我知道它做了什么,以及它如何与while循环合作,但是不会有一个while循环代码是相同的,无论是否存在?