Java 循环结构 - for, while 及 do…while
Java循环结构
- Java 循环结构 - for, while 及 do...while
- 1. while 循环
- 实例
- Test.java 文件代码:
- 2. do…while 循环
- 实例
- Test.java 文件代码:
- 3. for循环
- 实例
- Test.java 文件代码:
- 4. Java 增强 for 循环
- 实例
- Test.java 文件代码:
- 5. break 关键字
- 语法
- 实例
- Test.java 文件代码:
- break 深入
- 基础用法
- 多层循环怎么跳呢?
- outerloop
- 标签
- 标签有标准吗?
- 6. continue 关键字
- 语法
- 实例
- Test.java 文件代码:
顺序结构的程序语句只能被执行一次。
如果您想要同样的操作执行多次,就需要使用循环结构。
Java中有三种主要的循环结构:
- while 循环
- do…while 循环
- for 循环
在 Java5 中引入了一种主要用于数组的增强型 for 循环。
1. while 循环
while是最基本的循环,它的结构为:
while( 布尔表达式 ) { //循环内容
}
只要布尔表达式为 true,循环就会一直执行下去。
实例
Test.java 文件代码:
public class Test { public static void main(String[] args) { int x = 10; while( x < 20 ) { System.out.print("value of x : " + x ); x++; System.out.print("\n"); } } }
以上实例编译运行结果如下:
value of x : 10
value of x : 11
value of x : 12
value of x : 13
value of x : 14
value of x : 15
value of x : 16
value of x : 17
value of x : 18
value of x : 19
2. do…while 循环
对于 while 语句而言,如果不满足条件,则不能进入循环。但有时候我们需要即使不满足条件,也至少执行一次。
do…while 循环和 while 循环相似,不同的是,do…while 循环至少会执行一次。
do {//代码语句
}while(布尔表达式);
注意: 布尔表达式在循环体的后面,所以语句块在检测布尔表达式之前已经执行了。 如果布尔表达式的值为 true,则语句块一直执行,直到布尔表达式的值为 false。
实例
Test.java 文件代码:
public class Test { public static void main(String[] args){ int x = 10; do{ System.out.print("value of x : " + x ); x++; System.out.print("\n"); }while( x < 20 ); } }
以上实例编译运行结果如下:
value of x : 10
value of x : 11
value of x : 12
value of x : 13
value of x : 14
value of x : 15
value of x : 16
value of x : 17
value of x : 18
value of x : 19
3. for循环
虽然所有循环结构都可以用 while 或者 do…while表示,但 Java 提供了另一种语句 —— for 循环,使一些循环结构变得更加简单。
for循环执行的次数是在执行前就确定的。语法格式如下:
for(初始化; 布尔表达式; 更新) { //代码语句
}
关于 for 循环有以下几点说明:
- 最先执行初始化步骤。可以声明一种类型,但可初始化一个或多个循环控制变量,也可以是空语句。
- 然后,检测布尔表达式的值。如果为 true,循环体被执行。如果为false,循环终止,开始执行循环体后面的语句。
- 执行一次循环后,更新循环控制变量。
- 再次检测布尔表达式。循环执行上面的过程。
实例
Test.java 文件代码:
public class Test { public static void main(String[] args) { for(int x = 10; x < 20; x = x+1) { System.out.print("value of x : " + x ); System.out.print("\n"); } } }
以上实例编译运行结果如下:
value of x : 10
value of x : 11
value of x : 12
value of x : 13
value of x : 14
value of x : 15
value of x : 16
value of x : 17
value of x : 18
value of x : 19`
4. Java 增强 for 循环
Java5 引入了一种主要用于数组的增强型 for 循环。
Java 增强 for 循环语法格式如下:
for(声明语句 : 表达式) { //代码句子 }
声明语句: 声明新的局部变量,该变量的类型必须和数组元素的类型匹配。其作用域限定在循环语句块,其值与此时数组元素的值相等。
表达式: 表达式是要访问的数组名,或者是返回值为数组的方法。
实例
Test.java 文件代码:
public class Test { public static void main(String[] args){ int [] numbers = {10, 20, 30, 40, 50}; for(int x : numbers ){ System.out.print( x ); System.out.print(","); } System.out.print("\n"); String [] names ={"James", "Larry", "Tom", "Lacy"}; for( String name : names ) { System.out.print( name ); System.out.print(","); } } }
以上实例编译运行结果如下:
10,20,30,40,50,
James,Larry,Tom,Lacy,
5. break 关键字
break 主要用在循环语句或者 switch 语句中,用来跳出整个语句块。
break 跳出最里层的循环,并且继续执行该循环下面的语句。
语法
break 的用法很简单,就是循环结构中的一条语句:
break;
实例
Test.java 文件代码:
public class Test { public static void main(String[] args) { int [] numbers = {10, 20, 30, 40, 50}; for(int x : numbers ) { // x 等于 30 时跳出循环 if( x == 30 ) { break; } System.out.print( x ); System.out.print("\n"); } } }
以上实例编译运行结果如下:
10
20
break 深入
基础用法
在Java中,break
语句用于终止循环或者switch
语句的执行。它主要有两种用法:
- 在循环中使用: 当
break
语句被执行时,它会立即终止最内层的循环,并跳出该循环体。这在需要提前结束循环的情况下很有用,例如当达到某个条件时不再需要继续循环。
for (int i = 0; i < 10; i++) {if (i == 5) {break; // 当 i 等于 5 时跳出循环}System.out.println(i);
}
- 在
switch
语句中使用:break
语句也可以用于switch
语句中,用来终止switch
语句的执行。在switch
语句中,如果没有break
语句,程序将会继续执行下一个case
分支,直到遇到break
或者switch
语句结束。
int day = 3;
switch (day) {case 1:System.out.println("Monday");break;case 2:System.out.println("Tuesday");break;case 3:System.out.println("Wednesday");break;// 可能有更多的 case 分支...default:System.out.println("Other day");
}
总之,break
语句用来在循环或switch
语句中提前结束执行,并跳出循环或switch
语句。
多层循环怎么跳呢?
在多层循环中,可以使用break
语句来跳出指定的循环。通常情况下,break
语句只会跳出最内层的循环,但是如果你希望跳出外层的循环,你可以使用带有标签的break
语句。
下面是一个示例,展示了如何在多层循环中使用标签来跳出外层循环:
outerloop:
for (int i = 0; i < 5; i++) {for (int j = 0; j < 5; j++) {if (i * j > 6) {System.out.println("Breaking outerloop");break outerloop; // 跳出外层循环}System.out.println(i + " " + j);}
}
在这个示例中,break outerloop;
语句会跳出带有标签outerloop
的外层循环。没有标签的break
语句仅会跳出最内层的循环。使用标签的break
语句允许你在多层循环中更精确地控制程序流程。
outerloop
在这个示例中,outerloop
是一个自定义的标签,用于标识外层的循环。在Java中,你可以使用标签(label)来标记循环语句或者代码块,然后在其他地方使用带有该标签的break
或continue
语句来跳出或继续执行标记的循环或代码块。
在上面的示例中,outerloop:
是一个标签,它标记了外层的for
循环。然后,在内层循环中使用了带有outerloop
标签的break
语句,以便跳出外层循环。这样做是为了在多层循环中精确地控制程序的流程。
注意:标签名称是用户定义的,你可以给标签起任何你喜欢的名字,只要它符合Java的标识符规则即可。
标签
在Java中,每个标签都应该是唯一的,但你可以在代码中使用多个不同的标签。每个标签都是针对特定的循环或代码块的。在一个给定的作用域中,你可以为不同的循环或代码块创建不同的标签。
例如,如果你有多个嵌套的循环,你可以为每个循环创建不同的标签,以便在需要的时候跳出或继续执行特定的循环。
下面是一个示例,演示了如何在Java中使用多个不同的标签:
outerloop:
for (int i = 0; i < 3; i++) {innerloop:for (int j = 0; j < 3; j++) {if (i * j > 4) {System.out.println("Breaking innerloop");break innerloop; // 跳出内层循环}System.out.println(i + " " + j);}
}anotherloop:
for (int k = 0; k < 3; k++) {// 在这里做一些事情
}
在这个示例中,有三个不同的标签:outerloop
,innerloop
和anotherloop
,它们分别用于不同的循环。每个标签都是唯一的,并且在代码的特定范围内定义。
标签有标准吗?
标签是由程序员人为定义的,它们没有预定义的标准名称或格式。在Java中,你可以为任何循环或代码块创建标签,并在需要时使用这些标签来控制程序的流程。标签的名称应符合Java的标识符规则,但除此之外,你可以根据自己的喜好或者代码结构的需要来选择标签的名称。
6. continue 关键字
continue 适用于任何循环控制结构中。作用是让程序立刻跳转到下一次循环的迭代。
在 for 循环中,continue 语句使程序立即跳转到更新语句。
在 while 或者 do…while 循环中,程序立即跳转到布尔表达式的判断语句。
语法
continue 就是循环体中一条简单的语句:
continue;
实例
Test.java 文件代码:
public class Test { public static void main(String[] args) { int [] numbers = {10, 20, 30, 40, 50}; for(int x : numbers ) { if( x == 30 ) { continue; } System.out.print( x ); System.out.print("\n"); } } }
以上实例编译运行结果如下:
10
20
40
50