Java 何时使用while循环而不是for循环

Java 何时使用while循环而不是for循环,java,while-loop,Java,While Loop,我也在学习java和android。几乎所有我们可以通过循环执行的事情,我们可以在for-loop中执行 我发现了一个简单的情况,即使用while循环优于for循环 如果我必须在程序中使用计数器的值,那么我认为while循环比for循环好 使用while循环 int counter = 0; while (counter < 10) { //do some task if(some condition){ break; } } useTheCount

我也在学习java和android。几乎所有我们可以通过循环执行的事情,我们可以在for-loop中执行

我发现了一个简单的情况,即使用while循环优于for循环

如果我必须在程序中使用计数器的值,那么我认为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
int计数器=0;
while(计数器<10){
//做一些工作
如果(某些条件){
打破
}
}
使用计数器(计数器);//使用该计数器值执行其他任务的方法
在这种情况下,我发现while循环比for循环好,因为如果我想在for循环中实现同样的效果,我必须将counter的值分配给另一个变量


但是当while循环优于for循环时,是否有任何特定情况

for是有限的,在这个意义上,它将在元素用完时完成循环

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可以是无限的

编辑


我的错误<用于的代码>可以是无限的

A
for
循环只是一种特殊的while循环,它恰好处理变量的递增。您可以在任何语言中使用
while
循环来模拟
for
循环。它只是语法上的糖分(除了python,python中的
for
实际上是
foreach
)。因此,没有一种情况比另一种更好(尽管出于可读性原因,在执行简单的增量循环时,您应该更喜欢使用
for
循环,因为大多数人可以很容易地知道发生了什么)

对于,您可以像while一样:

while(true)
{
}

for(;;)
{
}
虽然可以表现为:

int x = 0;
while(x < 10)
{
    x++;
}

for(x = 0; x < 10; x++)
{
}
intx=0;
而(x<10)
{
x++;
}
对于(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);
int计数器;//需要在这里声明,以便计数器可以看到
对于(计数器=0;计数器<10&!某些条件;)
{
//做一些工作
}
使用计数器(计数器);

当您没有迭代器(通常是计数器)时,while循环通常更好。

一个主要区别是
循环最适合在您事先不知道需要执行的迭代次数时使用。当您在进入循环之前知道这一点时,您可以使用
for
循环。

我觉得我应该指出的一点是,当您使用for循环时,您不需要将计数器分配给另一个变量。例如,
For(counter=0;counter您可以执行以下操作:

int counter;
for (counter = 0; counter < 10; ) {
    //do some task
    if(some condition){
        break;
    }
}
useTheCounter(counter);
int计数器;
用于(计数器=0;计数器<10;){
//做一些工作
如果(某些条件){
打破
}
}
使用计数器(计数器);

while循环可以做的任何事情都可以在for循环中完成,而for循环可以做的任何事情都可以在while循环中完成。

不。没有一种特定情况下,
for
优于
while

他们做同样的事情。
这取决于您选择何时应用其中一种方法。

记住

用for循环完成的所有事情都可以用while循环完成,但不能用while循环 所有while循环都可以用for循环实现

而:

While循环
在退出条件与循环数或控制变量无关时使用

用于:

for循环
只是编写while循环、初始化语句、控制语句(何时停止)和迭代语句(每次迭代后如何处理控制因子)的捷径

例如

基本上,for循环只是while循环的缩写,任何for循环都可以从以下内容转换:

for([initialize]; [control statement]; [iteration]) {
   // ...
  }


相同。

虽然
是等效的,但同一事物的语法不同


你可以改变这个

while( condition ) {
   statement;
}
为此:

for( ; condition ; ) {
    statement;
}

另一方面:

for( init; condition; update) {
    statement;
}
相当于:

init;
while(condition) {
    statement;
    update;
}

所以,只要使用哪个看起来更好,或者说起来更容易。

循环更灵活,而
for
循环更可读,如果这是你要问的。如果你想知道哪一个更快,那么看看我做的关于
for
while
循环速度的实验


循环速度更快。

int counter=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
while(计数器<10){ //做一些工作 如果(某些条件){ 打破 } } 使用计数器(counter);//使用该计数器值执行其他任务的方法
您好,我重复您的代码,因为它不正确。您忘记增加计数器,因此计数器将保持在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
int计数器=0;
while(计数器<10){
//做一些工作
如果(某些条件){
打破
}
计数器++;
}
使用计数器(counter);//使用该计数器值执行其他任务的方法

当您知道要循环的次数时,请使用FOR循环。用于该循环的技术术语是迭代次数。您如何知道迭代次数?您知道开始、停止和步骤。如果您知道这三条信息,则应使用FOR循环,因为它是该作业的正确工具。
当不知道迭代次数时,使用DO循环。如果不知道开始、停止、步骤或它们的组合,则需要使用DO循环。表达式将在循环顶部求值。
如果希望至少循环一次,请使用DO WHILE循环。如果不希望至少循环一次,请仅使用WHILE循环。表达式将在循环底部求值。

可以将为循环编写的内容转换为WHILE循环。使用for循环的好处如下

  • 该语法允许您启动计数器,将条件设置为退出循环,然后自动递增
  • 您也可以在while循环中完成同样的操作,但所有这些都可以在while循环中完成