顺序结构的程序语句只能被执行一次。如果您想要同样的操作执行多次,,就需要使用循环结构。
Java中有三种主要的循环结构:
- while 循环
- do…while 循环
-
while 循环
while是最基本的循环,它的结构为:
while( 布尔表达式 ) {//循环内容}
只要布尔表达式为 true,循环就会一直执行下去。
public class Test {public static void main(String args[]) {int x = 1;while( x < 6 ) {System.out.print("x的值为: " + x);x++;System.out.println();}}}
以上实例编译运行结果如下:
x的值为:1x的值为:2x的值为:3x的值为:4x的值为:5
do…while 循环
对于 while 语句而言,如果不满足条件,则不能进入循环。但有时候我们需要即使不满足条件,也至少执行一次。
do…while 循环和 while 循环相似,不同的是,do…while 循环至少会执行一次。do {//代码语句}while(布尔表达式);
备注:布尔表达式在循环体的后面,所以语句块在检测布尔表达式之前已经执行了。 如果布尔表达式的值为 true,则语句块一直执行,直到布尔表达式的值为 false。
public class Test {public static void main(String args[]){int x = 1;do{System.out.print(""x的值为: " + x );x++;System.out.println();}while( x < 6 );}}
以上实例编译运行结果如下:
x的值为:1x的值为:2x的值为:3x的值为:4x的值为:5
for循环
虽然所有循环结构都可以用 while 或者 do…while表示,但 Java 提供了另一种语句 —— for 循环,使一些循环结构变得更加简单。
for循环执行的次数是在执行前就确定的。语法格式如下:
for(初始化; 布尔表达式; 更新) { //代码语句}
关于 for 循环有以下几点说明: 最先执行初始化步骤。可以声明一种类型,但可初始化一个或多个循环控制变量,也可以是空语句。
- 然后,检测布尔表达式的值。如果true,循环被执行。如果false,循环终止,开始执行循环体后面的语句。
- 执行一次循环后,更新循环控制变量。
- 再次检测布尔表达式。循环执行上面的过程。
以上实例编译运行结果如下:public class Test {public static void main(String[] args) {//for循环用来遍历数组(依次打印数组中每一个值)int[] arr = {22,32,-40,80,10};for (int i = 0; i < arr.length; i++){System.out.print(arr[i]);}System.out.println();//倒叙输出数组for (int i = arr.length - 1; i >= 0; i--) {System.out.print(arr[i]);}}}
求和思想,利用for循环求值22 32 -40 80 1010 80 -40 32 22
以上实例编译运行结果如下:public class Test {public static void main(String[] args) {/*** 分别求出0-100中奇数和与偶数和* evenNumbersSum 偶数和* oddNumbersSum 奇数和*/int evenNumbersSum = 0;int oddNumbersSum = 0;for (int i = 1;i<=100;i++){//System.out.println(i);if (i%2 == 0){evenNumbersSum += i;}else { //此处也可用if或者else if,判断条件可写 i%2 != 0;,因只有两种可能我就偷懒用elseoddNumbersSum += i;}}System.out.println("0-100中偶数相加的和为"+evenNumbersSum);System.out.println("0-100中奇数相加的和为"+oddNumbersSum);}}
嵌套for循环打印等边三角形:0-100中偶数相加的和为25500-100中奇数相加的和为2500
以上实例编译运行结果如下:public class Test {public static void main(String[] args) {for (int i = 1; i <= 5; i++) {for (int j = 4; j >= i; j--) {System.out.print(" ");}for (int j = 1; j <= i; j++) {System.out.print(" *");}System.out.println();}}}
** ** * ** * * ** * * * *
Java 增强 for 循环
Java 增强 for 循环语法格式如下:
for(声明语句 : 表达式){//代码句子}
声明语句:声明新的局部变量,该变量的类型必须和数组元素的类型匹配。其作用域限定在循环语句块,其值与此时数组元素的值相等。
表达式:表达式是要访问的数组名,或者是返回值为数组的方法。for增强有个缺陷就是拿不到数组的索引。
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.println("");String [] names ={"詹姆斯", "科比", "哈登", "杜兰特"};for( String name : names ) {System.out.print( name );System.out.print(",");}}
以上实例编译运行结果如下:
0,20,30,40,50,詹姆斯,科比,哈登,杜兰特,
利用for循环进行数组的冒泡排序
public class Test {public static void main(String[] args) {/*** 将数组[4,1,3,2,5,9,10.30,10,59]按小到大顺序排列* 冒泡排序原理:相邻两个相比大的往后排*/int [] arrayList = {4,1,3,2,5,9,100,30,10,59};for (int i = 0; i < arrayList.length; i++) {for (int j = 0; j <arrayList.length-1-i; j++) {if (arrayList[j]>arrayList[j+1]){int temp = arrayList[j];arrayList[j] = arrayList[j+1];arrayList[j+1] = temp;}}}for (int newArrayList : arrayList) {System.out.print(newArrayList);System.out.print(",");}}}
以上实例编译运行结果如下:
1,2,3,4,5,9,10,30,59,100,
