我没有找到do-while循环的任何实际用途。作为一项研究,我们在第一次执行时无法控制do-while循环,并且可以使用do-while循环完成所有操作,可以使用while或for循环(假设)。
我的问题是:是否存在使用do-while循环的情况,或者与for和while循环相比,它提供更可靠结果的任何特定情况?
答案 0 :(得分:8)
在重复操作之前它非常有用
String input;
...
do
{
input = getInput();
} while(isValid(input));
要使用其他循环执行此操作,您必须两次编写input = getInput();
答案 1 :(得分:7)
do
/ while
正好,但你想检查是否继续结束循环而不是在开始。
您可以使用while循环轻松模拟它,但有时代码变得不那么清晰。所有三种循环类型都可以相互模拟,或多或少混乱 - 但由于这三种循环都可用,您应该为手头的工作选择最合适的循环。
我个人使用while
循环和do
/ while
循环的频率低于for
循环,但有时 a {{1} } / do
是最易读的选项。
答案 2 :(得分:3)
不妨说"我没有找到for循环的任何实际用途......所有可以用循环完成的东西,可以用while循环(假设)"。
从技术上讲,你可以用任何其他循环替换任何循环,只要有足够的环形防护等等。有些循环比其他循环更好阅读。
do-while
主要是"更好"如果您想至少执行一次 动作,例如要求输入,或获得一些随机值,直到它适合某些约束。您可以通过在"常规"之外执行一次操作来执行此类操作。从那里循环和循环,但它更适合使用do-while
。
答案 3 :(得分:-2)
如果循环体必须执行至少一次,那么Do-while通常具有更好的性能特征。如果将do-while重构为while / for,则需要对循环退出条件添加额外的评估。
此外,do-while(false)可用作深层嵌套if条件的结构化替代:
do {
if (!condition1)
break;
if (!condition2)
break;
if (!conditionN)
break;
// do something
} while (false);
而不是:
if (condition1) {
if (condition2) {
if (conditionN) {
// do something
}
}
}