双重循环结构:
1)外层循环变量变化1次,内层循环变量变化1遍
2)外层循环控制行数,内层循环控制每一行的列数
语法:
for(初始值;循环条件;迭代部分){
//循环操作
for(初始值;循环条件;迭代部分){
//循环操作
}
例一:
//打印三角形(3行5列)
/*for(int i=1;i<=3;i++){//控制行数
for(int j=2-i;j>=0;j--){//控制列数,2-i为第一行2个空格,循环一次减1(第二行一个空格)
System.out.print(" ");
}
for(int a=1;a<=i*2-1;a++){//控制列数
System.out.print("*");
}
System.out.println();//换行
}*/
例二:
//打印九九乘法表
for(int sum=0, i=1;i<=9;i++){//行数
for(int j=1;j<=i;j++){//列数
sum=i*j;//变量相乘赋值给sum
System.out.print(j+"*"+i+"="+sum+"\t");
}
System.out.println();
}
例三:
//打印菱形 (上半部分)6行16列;(下半部分)5行14列
for(int i=1;i<=6;i++){ //(控制行数)循环条件
for(int j=6-i;j>0;j--){ //控制空格,循环一次减一个空格
System.out.print(" ");
}
for(int a=1;a<=i*2+4;a++){ //控制*号、列数,循环次数乘2加4等于每次循环需要输出的数量,即列数
System.out.print("*");
}
System.out.println();
}
for(int i=1;i<=5;i++){
for(int j=1;j<=i;j++){//循环一次加一个空格
System.out.print(" ");
}
for(int a=1;a<=(16-i*2);a++){//16减行数乘二
System.out.print("*");
}
System.out.println();
}
跳转关键字:
break、continue
break:
作用场景:switch选择结构和循环结构中
作用:
1)在switch选择结构中遇到break,则结束整个switch选择结构,执行switch选择结构后面的代码
2)在循环结构中遇到break,则结束整个循环结构后续所有操作,执行循环结构后面的代码
注意:
break一般结合if选择语句一起使用
结束某个循环结构,并跳出循环执行循环块外的下一条语句
例一:
// 循环输出1-20,当输出到10,后面的所有数字就不再输出
for (int i = 1; i <=20; i++) {
System.out.println(i);
//判断i的值,看其有没有到10,如果到10了,就应该结束整个for循环
if(i==10){
break;//结束整个for循环
}
}
continue :
作用场景:只能作用在循环结构中
作用:
结束当前(本次)循环后续操作,继续执行下一次循环操作
注意:
continue一般结合if语句一起使用
for (int i = 1; i <= 5; i++) {
System.out.print(i + "--");
for (int j = 10; j <= 50; j += 10) {
System.out.print(j + " ");
if(j==30){
// continue;
}
}
System.out.println();
}
标记循环:
可以为循环语句前加个标签
a: b: 等
a:for (int i = 1; i <= 5; i++) {//命名标签a
System.out.print(i + "--");
b:for (int j = 10; j <= 50; j += 10) {//命名标签b
System.out.print(j + " ");
if(j==30){
break a;//终止整个外层循环
// continue a;
}
}
System.out.println();
}