Java流程控制(三)循环
Java流程控制(三)
循环结构
-
while循环
while(布尔表达式){ //循环内容 }public static void main(String[] args) { int i=0; while(i<=5){ System.out.print(i+" "); i++;//i=i+1 } System.out.println("结束"); } //先进行判断是否继续执行操作,再执行循环中的操作 //while循环,当i小于等于5的时候执行循环中的操作,当i大于5的时候跳出循环 //循环中执行操作:输出i的值然后让i加一 //输出: 0 1 2 3 4 5 结束public static void main(String[] args) { int i=0; while(i!=0){ System.out.println("输出"+i); } System.out.println("结束"); } //输出: 结束 -
do...while循环
与while不同,do...while至少会执行一次
do{ //循环内容 }while(布尔表达式)public static void main(String[] args) { int i=0; do{ System.out.print(i+" "); i++; }while(i<=5); System.out.println("结束"); } //先执行循环里的操作,再进行判断是否继续执行操作 //先输出i=0,再让i加一,再让i比较是否小于等于5 //输出: 0 1 2 3 4 5 结束public static void main(String[] args) { int i=0; do{ System.out.println("输出"+i); }while(i!=0); System.out.println("结束"); } //输出: 输出0 结束 -
for循环
for(初始化;布尔表达式;更新){ //代码语句 }public static void main(String[] args) { for(int i=0;i<5;i++) { System.out.print(i+" "); } System.out.println("结束"); } //设初始值i=0 //当i<5时执行循环 //执行完一次操作后执行i++(i值加一),然后再进行i<5的判断 //在for里定义的i只在for中有效 //输出: 0 1 2 3 4 结束public static void main(String[] args) { int i; for(i=0;i<5;i++){ System.out.print(i+" "); } System.out.println("结束"); System.out.println(i); } //设初始值i=0 //当i<5时执行循环 //执行完一次操作后执行i++(i值加一),然后再进行i<5的判断 //在for之外定义的i在for之外依然有效 //输出: 0 1 2 3 4 结束 5//输出九九乘法表 //用到嵌套for循环 public static void main(String[] args) { for(int i=1;i<=9;i++){ for(int j=1;j<=i;j++){ System.out.print(j+"*"+i+"="+(i*j)+" ");//print输出之后不回车 } System.out.println("");//println输出之后自动回车 } } //输出: 1*1=1 1*2=2 2*2=4 1*3=3 2*3=6 3*3=9 1*4=4 2*4=8 3*4=12 4*4=16 1*5=5 2*5=10 3*5=15 4*5=20 5*5=25 1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36 1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49 1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64 1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81 -
数组增强型for循环(java5中开始引用)
主要用于数组或集合
for(声明语句 : 表达式) { //代码句子 } //声明语句:声明新的局部变量,该变量的类型必须和数组元素的类型匹配。其作用域限定在循环语句块,其值与此时数组元素的值相等 //表达式:表达式是要访问的数组名,或者是返回值为数组的方法。public static void main(String[] args) { int[] a={1,3,5,7};//定义数组a并赋值 for(int x:a){//定义x遍历循环a里的值(元素) System.out.print(x+" "); } } //输出: 1 3 5 7
break、continue、goto
public static void main(String[] args) {
for(int i=0;i<=10;i++){
System.out.print(i+" ");
}
System.out.println("结束");
}
//输出:
0 1 2 3 4 5 6 7 8 9 10 结束
-
break:
-
break可以用在switch判断语句和循环语句中,用于终止switch判断和循环
-
break可以强制退出循环,不执行循环中的剩余语句
public static void main(String[] args) { for(int i=0;i<10;i++){ if(i==5){ break;//终止循环 } System.out.print(i+" "); } System.out.println("结束"); } //当i值为5时,通过break终止循环,不再往下进行 //输出: 0 1 2 3 4 结束
-
-
continue:
-
continue可以用在循环语句中,用于终止本次循环
-
continue可以终止本次循环,跳过这次循环执行接下来是否执行循环的判定
public static void main(String[] args) { for(int i=0;i<=10;i++){ if(i==5){ continue; } System.out.print(i+" "); } System.out.println("结束"); } //当i值为5时,通过continue跳过本次循环(不再往下执行直接到i++和i<=10),执行接下来是否执行循环的判定 //输出: 0 1 2 3 4 6 7 8 9 10 结束 //从输出中可以看到,没有输出5,因为先判断i等于5,之后执行continue,到此本次的循环就终止了不再往下进行了而是直接到i++和i<=10判断上面了public static void main(String[] args) { for(int i=0;i<=10;i++){ System.out.print("i1="+i+" "); if(i==5){ System.out.println(""); continue;//跳过循环(本次循环中之后的语句不再执行,直接到i++和i<=10) } System.out.print("i2="+i+" "); System.out.println(""); } System.out.println("结束"); } //从输出中可以看到,没有输出5,因为先判断i等于5,之后执行continue,到此本次的循环就终止了不再往下进行了而是直接到i++和i<=10判断上面了 //continue指结束本次循环,本次循环中之后的操作不再进行,但本次循环中continue之前已经执行过的操作就没办法了 //输出: i1=0 i2=0 i1=1 i2=1 i1=2 i2=2 i1=3 i2=3 i1=4 i2=4 i1=5 i1=6 i2=6 i1=7 i2=7 i1=8 i2=8 i1=9 i2=9 i1=10 i2=10 结束 //从输出中可以看到,i等于5时通过continue结束本次循环,所以之后的i2=5不再输出,但i1=5是在本次循环中的continue之前执行的,所以无法停止(默认顺序执行)
-
-
goto:
-
Java中没有goto
-
在break和continue两个关键字上能看出一些goto的影子(带标签的break和continue)
-
标签:
标签指后面跟着一个冒号的标识符,如:label:
-
不建议使用goto
-
打印三角形
public static void main(String[] args) {
for(int i=5;i>=0;i--){
for(int j=0;j<=i;j++){
System.out.print(" ");
}
for(int j=5;j>=i;j--){
System.out.print("*");
}//本行左半部分
for(int j=5;j>i;j--){
System.out.print("*");
}//本行右半部分
System.out.println("");//换到下一行
}
}
//输出:
*
***
*****
*******
*********
***********

浙公网安备 33010602011771号