我正在学习java以及android。几乎所有我们可以执行的操作都会循环我们可以循环执行的操作。
我发现了一个简单的条件,即使用while循环优于循环
如果我必须在我的程序中使用counter的值,那么我认为while循环优于for循环
使用while循环
int counter = 0;
while (counter < 10) {
//do some task
if(some condition){
break;
}
}
useTheCounter(counter); // method which use that value of counter do some other task
在这种情况下,我发现while循环优于for循环,因为如果我想在for循环中实现相同,我必须将counter的值赋给另一个变量。
但是当while循环优于循环
时,是否存在任何特定情况答案 0 :(得分:14)
for
循环只是一种特殊的while循环,它恰好处理递增变量的问题。您可以使用任何语言的for
循环模拟while
循环。它只是语法糖(除了py for
实际上是foreach
)。所以不,没有特定的情况,其中一个比另一个好(尽管出于可读性的原因,当你进行简单的增量循环时,你应该更喜欢for
循环,因为大多数人都可以很容易地知道发生了什么。) / p>
因为可以表现得像:
while(true)
{
}
for(;;)
{
}
虽然可以表现得像:
int x = 0;
while(x < 10)
{
x++;
}
for(x = 0; x < 10; x++)
{
}
在你的情况下,是的,你可以把它重写为像这样的for循环:
int counter; // need to declare it here so useTheCounter can see it
for(counter = 0; counter < 10 && !some_condition; )
{
//do some task
}
useTheCounter(counter);
答案 1 :(得分:12)
一个主要区别是while
循环最适合您提前不知道需要执行的迭代次数。在进入循环之前如果知道这一点,可以使用for
循环。
答案 2 :(得分:5)
for
和while
是等效的,只是针对同一事物的不同语法。
你可以改变这个
while( condition ) {
statement;
}
到此:
for( ; condition ; ) {
statement;
}
另一种方式:
for( init; condition; update) {
statement;
}
相当于:
init;
while(condition) {
statement;
update;
}
所以,只需使用哪个看起来更好,或者更容易说话。
答案 3 :(得分:3)
记住,
使用for循环完成的所有操作都可以使用while循环完成,但不是 所有while循环都可以用for循环实现。
WHILE:
当退出条件与循环次数或控制变量 无关时,使用 FOR: 例如, 基本上,for循环只是while循环的简写,任何for循环都可以从: 和 是一样的。While-loops
for-loops
只是编写while循环的一种捷径,而初始化语句,控制语句(何时停止)和迭代语句(如何处理控制因素后)每次迭代)。 for([initialize]; [control statement]; [iteration]) {
// ...
}
[initialize];
while([control statement]) {
//Do something [iteration];
}
答案 4 :(得分:2)
for是有限的,在某种意义上它会在元素耗尽时循环完成循环....
如果不满足条件或循环中断,则可以是无限的
修改强>
我的错误...... for
可以无限......
答案 5 :(得分:2)
当你没有迭代器(通常是计数器)时,while循环通常会更好。
答案 6 :(得分:2)
当您知道要循环的次数时,请使用FOR循环。术语的技术术语是迭代次数。您如何知道迭代次数?您知道开始,停止和执行的步骤。如果您知道这三点信息,则应该使用FOR循环,因为它是完成工作的正确工具。
当您不知道迭代次数时,请使用DO循环。如果您不知道启动,停止,步进或它们的某种组合,则需要使用DO循环。该表达式将在循环顶部求值。
如果要循环至少一次,请使用DO WHILE循环。如果您不想循环至少一次,请仅使用WHILE循环。该表达式将在循环的底部求值。
答案 7 :(得分:1)
我觉得我应该指出的一点是,当你使用for循环时,你不需要将计数器分配给另一个变量。例如,for(counter=0; counter<10; counter++)
是有效的Java代码。
至于你的问题,当你想要一段代码运行一定次数时,for循环通常会更好,而当代码保持运行的条件更通用时,while循环更好,例如具有布尔标志,只有在代码块中满足某个条件时才设置为true。
答案 8 :(得分:1)
您可以执行以下操作:
int counter;
for (counter = 0; counter < 10; ) {
//do some task
if(some condition){
break;
}
}
useTheCounter(counter);
while循环可以执行的任何操作也可以在for循环中完成,而for循环可以执行的任何操作也可以在while循环中完成。
答案 9 :(得分:1)
没有。没有for
优于while
的具体情况
他们做同样的事情。
这取决于您在应用其中之一时的选择。
答案 10 :(得分:0)
while
循环更加灵活,而for
循环更具可读性,如果这就是您所要求的。如果您想知道哪一个更快,那么请看一下我对for
和while
循环的速度进行的实验。
while
循环更快。
答案 11 :(得分:0)
int counter = 0;
while (counter < 10) {
//do some task
if(some condition){
break;
}
}
useTheCounter(counter); // method which use that value of counter do some other task
您好我重复您的代码,因为它不正确。你忘记增加你的计数器,使它保持在0
int counter = 0;
while (counter < 10) {
//do some task
if(some condition){
break;
}
counter++;
}
useTheCounter(counter); // method which use that value of counter do some other task
答案 12 :(得分:0)
您可以为for循环编写的内容都可以转换为while循环。使用for循环的好处是
您也可以在while循环中完成相同的操作。但是,您无法在for循环中执行while循环中可以做的所有事情。例如,如果您有一个以上的计数器,并且您希望它们中的任何一个都根据条件递增,则只能使用。在循环末尾的for循环中,计数器递增自动发生。
最佳用途
对于矩阵或单数组单向遍历,for循环好 如果有多个条件和多个计数器,则while循环会很好。如果你想根据不同的条件从两侧遍历一个数组,那么while循环是好的。
在循环时,有更多的机会忘记递增计数器并最终进入无限循环,而在for循环中,语法将帮助您轻松设置计数器。
答案 13 :(得分:0)
For循环包含计数的概念,这很棒。但是,当您不知道代码应运行多少次时,while循环才有意义。