我是编程语言的初学者,我对循环概念的基本概念有点困惑,谁能告诉我什么时候使用 For 循环的概念以及什么时候使用 while 循环,这样对我来说非常优雅对我未来的编程,提前致谢
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 循环在这里被认为更优雅。
在几乎所有情况下,您都可以使用 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);
}
基本上,如果您知道该循环必须执行的迭代次数,则应该使用 for 循环。即使该数字是一个变量(如列表的长度),它在运行时也是已知的。
当您不知道迭代次数时,使用 while 循环。您主要检查一个可以在任何数字之后评估为假的条件。
您还可以使用 do-while 和 for-each 循环。当您知道您至少有一次迭代但数量未知时使用 do-while。for-each 用于迭代数组和集合。它可以为包含的每个元素做一些事情。
for
循环将使您可以选择执行以下三件事中的任何一项或全部:
- 实例化一个起始迭代值(int i = 0)
- 定义一个可以继续迭代的布尔条件(i < 10)
- 提供增量步骤 (i += 2)
一个有效的for
循环可能如下所示:
for(; ;) {
System.out.println("This will run forever!!!");
}
循环只为您提供while
布尔条件,这是强制性的。
通常在以下情况下使用for
循环:
- 您知道必须迭代的元素的大小
通常在以下情况下使用while
循环:
- 您不知道必须迭代的元素的大小
- 您想忙于等待某个值或变量
当您知道需要执行多少次时,就会使用 for 循环loop
。While
循环用于循环直到事件发生。
另外,请注意,无论您可以使用 for 循环做什么,都可以使用 while 循环来完成(只需添加一个在 while 循环中递增的变量,并break
在变量达到某个值时使用它退出循环)。
这是人们通常通过经验获得的东西之一。首先要意识到的是,任何 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];
}