for循环结构
1 2 3 4 5 6 7 8 9 10 11 12
| for(初始化表达式1;条件表达式2;修改初始值表达式3) { 循环体; }
表达式1--> 表达式2--> true --> 循环体 | | ^ v |--<- 表达式3 --<--
for (int i = 1; i <= 10; i++) { System.out.println(i); }
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| int i,sum=0; for( i=1; i<=10000; i++){ sum = sum + i; }
int i = 1,sum=0; for( ; i<=10000; i++){ sum = sum + i; }
int i,sum=0; for( i=1; i<=10000; ){ sum = sum + i; i++; }
死循环 for(;;) -- 这种没有循环条件的就是死循环 通常与break关键字搭配使用
|
1 2 3 4 5 6 7 8 9 10 11 12
| int ge,shi,bai,sum=0; int i; for( i=100; i<=999; i++ ){ ge = i%10; shi = i/10%10; bai = i/100; sum = ge*ge*ge + shi*shi*shi + bai*bai*bai; if( i==sum ) System.out.print( i+"\t" ); }
|
break关键字
break用于退出当前语句块,break用在循环体中用于退出循环。
1 2 3 4 5 6 7
| for (int i = 0; i < 10; i++) { if(i==5) break; System.out.print(i+" "); }
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| Scanner input = new Scanner(System.in); String user = "Hi~";
for( ; ; ){ System.out.println("亲爱的,在聊5块钱的吗?"); user = input.next(); if( "bye".equals( user ) ){ System.out.println("今天就到这里了!明年继续 end!"); break; } }
|
continue关键字
continue语句用在循环体中,用于结束本次循环而开始下一次循环。
1 2 3 4 5 6 7
| for (int i = 0; i < 10; i++) { if(i%5==0) continue; System.out.print(i+" "); }
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| Random obj = new Random();
int sysNum = obj.nextInt( 100 ) + 1; Scanner input = new Scanner(System.in); int userNum = 0;
for( ; ; ){ System.out.println("请输入您购买的1~100之间的号码:"); userNum = input.nextInt(); if( sysNum == userNum ){ System.out.println("恭喜您,中奖了"); break; }else if( userNum < sysNum ){ System.out.println("您买小了"); }else{ System.out.println("您买大了"); } }
|
嵌套循环
循环可以互相嵌套,构成多重循环。多重循环不宜嵌套太多层,否则效率很低,一般到三重循环即可。
多重循环中最常见的就是双重循环。
1 2 3 4 5 6 7 8 9 10 11 12
| int i=0,j=0;
for(i=1; i<=10; i++){ for(j=1; j<=9; j++){ System.out.print("*"); } System.out.println(""); }
|
1 2 3 4 5 6 7 8 9 10 11
| int i=0,j=0;
for(i=1; i<=5; i++){ for(j=1; j<=i; j++){ System.out.print("*"); } System.out.println(""); }
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| int i=0,j=0,d=0;
for(i=1; i<=5; i++){ for(d=1; d<=5-i; d++){ System.out.print(" "); } for(j=1; j<=i*2-1; j++){ System.out.print("*"); } System.out.println(""); }
|
1 2 3 4 5 6 7 8 9
| for(int i = 1;i < 10;i++){ for(int j = 1;j <= i;j++){ int sum = i*j; System.out.print(i + "*" + j + "=" + sum + "\t " );
if(i == j) System.out.println(); } }
|
while循环结构
1 2 3 4 5
| String cmd; while (!"exit".equals(cmd = scanner.next())) { System.out.println(cmd); }
|
while循环和for循环比较
- while 语句和for都是”当型循环” 可以完全互换。
1 2 3 4 5 6 7 8 9 10 11 12
| for(int i = 1; i <= 10; i++) { System.out.println(i); } System.out.println("----------------------------");
int i = 1; while(i <= 10) { System.out.println(i); i++; }
|