循环
与C语言相同,Java中有三种主要的循环结构:
while 循环
do…while 循环
for 循环
1、while循环
while 循环是一种入口控制循环,它在每次迭代之前检查循环条件是否为真。只有当条件为真时,循环体才会执行。如果条件一开始就为假,循环体可能不会执行一次。
适用场景:
当循环的次数不确定,但循环的条件可以在迭代前确定时,适合使用 while 循环。
当需要重复执行一段代码,直到满足某个条件时,也可以使用 while 循环。
模板:
while (condition) { // 循环体 // 在条件为真时执行 }
实例:
int count = 0; while (count < 5) { System.out.println("Count: " + count); count++; } //打印从 0 到 4 的数字
2、do-while循环
do-while 循环是一种出口控制循环,它在每次迭代之后检查循环条件是否为真。因此,do-while 循环至少会执行一次循环体,然后根据条件是否为真决定是否继续执行。
适用场景:
当需要至少执行一次循环体,然后根据条件决定是否继续执行时,适合使用 do-while 循环。
当循环条件依赖于循环体中的操作结果时,也可以使用 do-while 循环。
模板:
do { // 循环体 // 至少执行一次
实例:
int count = 0; do { System.out.println("Count: " + count); count++; } while (count < 5); //打印从 0 到 4 的数字
3、for循环
for 循环是一种方便的迭代结构,它将初始化、条件检查和迭代更新放在一个语句中。这使得代码更加简洁,并且更容易理解循环的逻辑。
适用场景:
当循环的次数已知且固定时,适合使用 for 循环。
当需要对某个范围内的值进行迭代时,for 循环也是一个很好的选择。
模板:
for (initialization; condition; update) { // 循环体 }
实例:
for (int i = 0; i < 5; i++) { System.out.println("Count: " + i); } //打印从 0 到 4 的数字
在循环进行的过程中,如果我们想要打破循环怎么办?这就涉及到了break关键字。
break 关键字
break 主要用在循环语句或者 switch 语句中,用来跳出整个语句块。
如果break在多层循环的某一层,则只会跳出该层循环,并且继续执行该循环下面的语句。
语法:
break;
举个例子:
public class ice { public static void main(String[] args){ int[] arr = {12,34,56,7}; //int x; for(int x=0;x<=3;x++){ System.out.println(arr[x]); break; //输出arr[0]后,遇见break语句,直接跳出循环,导致只输出12 } } }
数组for循环
除了上面三种循环外,Java5 引入了一种主要用于数组的增强型 for 循环。
Java 增强 for 循环语法格式如下:
for(声明语句 : 表达式) { //代码句子 **声明语句:**声明新的局部变量,该变量的类型必须和数组元素的类型匹配。其作用域限定在循环语句块,其值与此时数组元素的值相等。 **表达式:**表达式是要访问的数组名,或者是返回值为数组的方法。
声明新的局部变量时,必须在for语句内,不能在for语句外,否则报错:
正确写法:
continue 关键字
当 continue 语句在 for 循环中执行时,它会导致程序立即跳转到更新语句(即下一次迭代的开始处),而不执行循环体中 continue 语句之后的代码。
语法:
continue
在 for 循环中,continue 语句使程序立即跳转到更新语句。
for (int i = 0; i < 5; i++) { if (i == 2) { continue; // 当 i 等于 2 时,立即跳转到更新语句 } System.out.println("Count: " + i); }
在 while 或者 do…while 循环中,程序立即跳转到布尔表达式的判断语句。
public class ice { public static void main(String[] args){ int i = 0; while (i < 5) { i++; if (i == 2) { continue; // 当 i 等于 2 时,跳过当前迭代,重新检查布尔表达式 i < 5 } System.out.println("i = " + i); } } }