当涉及到计数时,应该使用do-while
循环还是for
循环?因为这是:
class Main {
public static void main(String[] args) {
int times = 1;
do {
System.out.println("I have printed " + times + " times.");
times++;
} while (times < 6);
}
}
似乎做的事情和下面的完全一样:
class Main {
public static void main(String[] args) {
for (int times = 1; times < 6; times++) {
System.out.println("I have printed " + times + " times.");
}
}
}
这是速度上的差异吗?偏好?情况?个人怪癖?某种"Java社交禁忌“?我没有头绪。两者似乎都能用于有效的计数,只是前者需要更多的时间。而且两者打印的和是完全相同的。
System.out.println("Many thanks!!");
发布于 2018-10-10 04:42:35
你说得对,它们做的是一样的事情(除了一个从0开始计数,另一个从1开始计数,但这只是一个实现细节)。如果您的程序预先(在循环开始之前)知道您希望循环迭代多少次,大多数Java开发人员会告诉您使用for
循环。这就是它设计的目的。
while
循环或do while
循环更适合于在退出循环之前查找特定值或条件的情况。(类似于count >= 10
或userInput.equals("N")
。计算结果为布尔值True/False的任何值。)
发布于 2018-10-10 04:57:22
当面临这样的困境时,目标是可读性和熟悉性。您不应该关注微优化。专注于可读性和清晰地传达你的意图。在类似的情况下,要像其他人一样去做。
就像@蜥蜴比尔说的那样,while
循环向你代码的读者建议你选择它,因为你不是在计数,而是重复直到满足一个条件。至少一次-否则你会选择while(...){ }
循环。
换句话说,for
、do {} while()
和while() { }
的工作原理是一样的。但在你的特定逻辑中,一个可能更好地传达你的意图。
发布于 2018-10-10 05:01:49
这取决于程序员选择何时使用for循环或do while循环,但大多数程序员遵循的一般实践是
当您知道循环将执行预定义的次数时(因为您也可以使用for(;true;)
,它将永远循环)。例如,运行10次或n次的循环,其中n是变量
for(int i = 0; i < n; i++) {
//Do something
}
当您知道循环应该在将特定条件求值为true之后终止,或者您希望循环永远运行时(如while(true)),并检查while循环内部的中断条件。
此外,当您一开始不能确定条件时,while循环是首选的,并且从while(true)开始,但是一旦您在循环中编写了代码,您就可以很好地理解正在发生的事情,并了解要检查哪些条件,从而了解何时退出循环。例如
while(x != 0) {
//Do something;
x--;
}
while(true) {
// some code to execute on which the condition depends
if(condition is true) {
break;
}
}
Do while循环类似于while循环,但有一点不同。也就是说,它允许在不检查条件的情况下进行第一次迭代(在while语句中指定,但您仍然可以计算块内的条件(大括号))。
https://stackoverflow.com/questions/52728945
复制相似问题