-7

我是编程语言的初学者,我对循环概念的基本概念有点困惑,谁能告诉我什么时候使用 For 循环的概念以及什么时候使用 while 循环,这样对我来说非常优雅对我未来的编程,提前致谢

4

6 回答 6

6

通常,如果您知道(或者程序可以在循环时知道)您想要运行一段代码多少次,则使用 for 循环,如果不知道,则使用 while 循环。

但是,可以互换使用它们,因此虽然使用其中一个可能不那么优雅,但这并不重要。前任:

for(int i = 0; i < 100; i++){
    do stuff
}

是相同的

int i = 0;
while(i < 100){
    do stuff
    i++;
}

,但前者看起来更优雅。

相似地,

bool condition = false;
while(condition){
    do stuff
}

for(bool condition = false; condition;){
    do stuff
}

是相同的,但一般来说,while 循环在这里被认为更优雅。

于 2013-07-09T05:14:21.077 回答
3

在几乎所有情况下,您都可以使用 for 或 while 循环。为您提供了两种循环方式,以帮助降低不同用例中代码的复杂性。

何时使用 for 循环

当您在开始之前知道要循环多少次迭代时,for 循环是最好的。例如,如果您知道要打印数字 1 到 10,以便您知道要循环 10 次。

for(int i = 1; i <= 10; i++)
{
   System.out.println(i);
}

何时使用 while 循环

当您想继续循环直到发生特定事件或满足条件时,While 循环是最好的。例如,假设您想打印 1 到 10 之间的随机数,直到遇到数字 5。这可能需要一次或数百次迭代,具体取决于您的运气。

Random rand = new Random();
int value = 0;
while(value != 5)
{
   value = rand.nextInt(10);
   System.out.println(value);
}
于 2013-07-09T05:19:52.250 回答
1

基本上,如果您知道该循环必须执行的迭代次数,则应该使用 for 循环。即使该数字是一个变量(如列表的长度),它在运行时也是已知的。

当您不知道迭代次数时,使用 while 循环。您主要检查一个可以在任何数字之后评估为假的条件。

您还可以使用 do-while 和 for-each 循环。当您知道您至少有一次迭代但数量未知时使用 do-while。for-each 用于迭代数组和集合。它可以为包含的每个元素做一些事情。

于 2013-07-09T05:15:17.917 回答
1

for循环将使您可以选择执行以下三件事中的任何一项或全部:

  • 实例化一个起始迭代值(int i = 0)
  • 定义一个可以继续迭代的布尔条件(i < 10)
  • 提供增量步骤 (i += 2)

一个有效的for循环可能如下所示:

for(; ;) {
    System.out.println("This will run forever!!!");
}

循环只为您提供while布尔条件,这是强制性的。

通常在以下情况下使用for循环:

  • 您知道必须迭代的元素的大小

通常在以下情况下使用while循环:

  • 您不知道必须迭代的元素的大小
  • 您想忙于等待某个值或变量
于 2013-07-09T05:16:54.327 回答
1

当您知道需要执行多少次时,就会使用 for 循环loopWhile循环用于循环直到事件发生。

另外,请注意,无论您可以使用 for 循环做什么,都可以使用 while 循环来完成(只需添加一个在 while 循环中递增的变量,并break在变量达到某个值时使用它退出循环)。

于 2013-07-09T05:13:36.253 回答
0

这是人们通常通过经验获得的东西之一。首先要意识到的是,任何 for 循环都可以分解为 while 循环

for ( initialise; test ; go on to next )

可以表示为

initialise;
while(test) {
    go on to next
}

我建议尝试一段时间只使用 while 循环。然后你会发现你的一些while循环开始感觉有点笨拙。

initialise;
while(test) {
    my really interesting code here
    go on to next
}

你会发现

for ( initialise ; test; go on to next ) {
     my really interesting code here
}

读得更清楚。一个常见的例子是通过数组工作。

for ( int i; i < array.length; i++ ){
       something with array[i];
}
于 2013-07-09T05:21:55.713 回答