1. 概念
大家想一下,我们在400米的跑道上参加万米长跑,正常情况下要跑25圈,这25圈每一圈的跑步过程其实都是一样的,相当于是我们重复地转了25圈。跑完第25圈时,我们就会结束长跑,当然你也可以提前结束长跑。但如果你是一个超人,跑完25圈之后还继续跑下去,直到天荒地老,这就成了一个”死循环“了。
所以循环其实就是重复地完成某一件事情或者某一个操作,且该操作有开始和结束。我们在执行循环时,需要满足一定的循环条,反复执行特定的代码,当条件被打破时就要结束循环。这个循环操作不一定是完全一样的操作,而是类似的操作,比如我们可以循环的播放音乐、循环计算1000个学生的成绩等。
1. 实现方式
明确了循环的概念之后,我们还要知道有哪几种具体的循环实现方式。在Java中,实现循环的方式有:
for循环;
while循环;
do-while循环;
foreach循环
1. for循环
首先我们来学习一下Java里的for循环,这也是我们开发时最常用的一种循环形式。
3.1 语法
for循环的基本语法如下:
for(①.声明并初始化循环变量;②.判断循环条件;④.改变循环变量值){
//③.循环体
}
语法说明:
1.for循环最先执行初始化步骤。在这里可以声明一种类型,但可以初始化一个或多个循环控制变量,也可以是空语句;
2.判断循环条件,检测布尔表达式的值。如果为 true,循环体被执行。如果为false,循环终止,开始执行循环体后面的语句。且for循环的执行次数在执行前就已经是确定的。
3.执行一次循环后,就会更新一次循环控制变量的值;
4.再次检测布尔表达式,循环执行上面的过程。
根据上面的步骤,壹哥把重点步骤给大家总结如下:
①-->②-->③-->④-->②-->③-->④-->②-->③-->④-.....-②
如下图所示:
3.2实现方式
Java 中的 for 循环是一种常见的控制流结构,可用于多次重复执行某段代码。for 循环包括三个部分:初始化语句、循环条件和循环迭代器,如下所示:
for (初始化语句; 循环条件; 循环迭代器) {
// 循环体
}
在每次循环中,初始化语句只会在第一次执行,循环条件将会被检查,如果为 true,则执行循环体,否则跳出循环,执行后面的代码。循环迭代器则在每次循环结束后执行,以便更新循环变量的值。
以下是一个简单的 Java 程序,使用 for 循环输出数字 0 到 9:
public class ForLoopExample {
public static void main(String[] args) {
for (int i = 0; i < 10; i++) {
System.out.println(i);
}
}
}
在这个例子中,初始化语句是 int i = 0;,将变量 i 初始化为 0。循环条件是 i < 10,只要 i 小于 10,循环就会一直执行。循环迭代器是 i++,每次循环结束后,i 的值会增加 1。
当程序运行时,for 循环将会输出数字 0 到 9:
0
1
2
3
4
5
6
7
8
9
这就是一个简单的 for 循环的例子。在实际编程中,for 循环经常用于遍历数组或集合等数据结构。
4. while循环
Java中的while循环是一种重复执行代码块的控制结构,只要指定的条件为真,就会一直执行循环中的代码块。while循环的语法如下:
while (condition) {
// 循环体
}
在上面的代码中,condition 是一个布尔表达式,如果条件为true,则会一直执行循环体中的代码。循环体可以包含任何Java代码,包括变量声明、控制流语句、函数调用等等。
需要注意的是,如果while循环中的条件始终为true,那么该循环将永远不会结束,这种情况下可能会导致无限循环,程序会一直运行下去,直到内存或处理器资源耗尽或者程序强制停止。因此,在编写while循环时,一定要确保循环体中的代码最终能够改变条件的值,使得循环最终能够结束。
5.for循环和while循环的特点
5.1 for循环:
●for循环适用于已知循环次数的情况,可以根据给定的条件来自动控制循环次数。
●for循环可以遍历一个序列,例如列表、元组、字符串等,对序列中的每个元素执行相同的操作。
●for循环可以使用range()函数生成一系列连续的整数作为循环变量,也可以使用enumerate()函数同时获取序列中元素的索引和值。
●for循环语法简洁,易于理解和维护。
5.2 while循环:
●while循环适用于未知循环次数的情况,可以根据条件判断来控制循环次数。
●while循环适用于需要反复执行某个操作直到满足条件的情况,例如输入验证、游戏循环等。
●while循环语句块执行前需要先判断条件是否成立,如果条件不成立,则不会进入循环。
●while循环可以用于实现多线程的同步等复杂操作。
总的来说,for循环适用于已知循环次数的情况,可以方便地遍历序列;而while循环适用于未知循环次数的情况,可以在需要时反复执行操作直到满足条件。在编程中,根据具体的需求选择不同的循环结构可以提高代码的效率和可读性。
6.for循环和while循环的区别
6.1 for循环
for循环的语法如下:
for (初始化语句; 循环条件; 循环迭代器) {
// 循环体
}
其实:
●初始化语句:一般用于初始化循环变量。
●循环条件:如果满足条件,就继续执行循环体中的语句;否则,跳出循环。
●循环迭代器:更新循环变量的值,一般用于每次循环结束时更新循环变量的值。
例如,以下代码使用for循环打印出从0到9的数字:
for (int i = 0; i < 10; i++) {
System.out.println(i);
}
这个循环会从0开始,每次递增1,直到循环变量i的值达到10为止。这个循环的输出结果如下:
0
1
2
3
4
5
6
7
8
9
6.2 while循环
while循环的语法如下:
while (循环条件) {
// 循环体
}
其中:
循环条件:如果满足条件,就继续执行循环体中的语句;否则,跳出循环。
例如,以下代码使用while循环打印出从0到9的数字:
//定义初始化遍历
int i = 0;
while (i < 10) {
System.out.println(i);
i++;
}
这个循环会从0开始,每次递增1,直到循环变量i的值达到10为止。这个循环的输出结果与上面的for循环相同:
0
1
2
3
4
5
6
7
8
9
6.3 for循环和while循环的比较
在使用上,for循环和while循环都可以完成相同的任务,但它们的使用场景略有不同:
●for循环适用于已知循环次数的情况,例如遍历一个数组或集合。
●while循环适用于未知循环次数的情况,例如读取文件直到文件结尾。
因此,当你需要重复执行一组语句时,应该根据具体的情况选择for循环或while循环。
7.for循环和while循环的使用场景
7.1 for循环的使用场景
for循环通常用于迭代数组或集合中的元素。例如,以下示例计算一个数组中所有元素的和:
int[] arr = {1, 2, 3, 4, 5};
int sum = 0;
for (int i = 0; i < arr.length; i++) {
sum += arr[i];
}
System.out.println(sum);
上面的代码中,for循环遍历整个数组,将每个元素加入到sum变量中,最终输出总和。这种情况下,我们已经知道了要循环的次数(数组的长度),所以使用for循环更加方便。
7.2 while循环的使用场景
while循环通常用于在不确定条件下重复执行代码块。例如,以下示例不断生成随机数,直到生成了一个大于90的数:
int num = 0;
while (num <= 90) {
num = (int) (Math.random() * 100);
}
System.out.println("The first number greater than 90 is: " + num);
上面的代码中,while循环不断生成随机数,直到生成的数大于90为止。这种情况下,我们不知道要循环多少次,所以使用while循环更加方便。
需要注意的是,在某些情况下,for循环和while循环是可以互换的,例如上面的示例中,我们也可以使用for循环来生成随机数,只不过要在循环体内判断条件。但是在实际开发中,根据代码逻辑和可读性来选择合适的循环语句是比较重要的。
8.总结
用 for 循环或 while 循环最终都是取决于任务的性质和所需的迭代方式。
●for 循环适用于已知要遍历的元素数量的情况,例如在列表、元组或字符串等可迭代对象中遍历元素。
●while 循环适用于需要在满足某个条件时重复执行某个块代码的情况,例如在执行某些操作直到达到预期结果或用户输入正确值的情况。
●当需要遍历固定数量的元素时, for 循环比 while 循环更方便。当需要在满足条件时重复执行代码时, while 循环比 for 循环更适合。
总的来说,对于大多数情况,选择 for 循环是更好的选择,因为它通常比 while 循环更简单、更直观。然而,在特定情况下,使用 while 循环可以更加灵活,特别是当需要在不确定条件下循环执行代码时。