嵌套循环
有些时候一个循环已经无法解决问题,就需要循环进行嵌套,这里主要以for循环为例
for(int i = 0; i < 10; i++){
for(int i = 0; i < 2; i++){
System.out.print("*");
}
}
//外层循环变量变化一次 内层循环变量变化一轮
//如上循环 将执行一共 20次
break和continue
break
for(int i = 0; i < 10; i++){
if(i == 2){
break;
}
}
//这里在i的值为2的时候 中断当前循环 未执行的后续循环将不再执行
//注:break通常和流程控制语句结合来使用 比如 if
int num = 5;
for(int i = 0; i < 10; i++){
switch(num){
case 5:
break;
default:
break;
}
}
//注:如果在for循环中存在switch,那么switch中的break关键字将只中断case代码块,而不会跳出循环。也就是说switch中的break还是最初的它该有的作用,跟for循环体无关。
continue
for(int i=0;i<10;i++){
if(i==2){
continue;
}
System.out.print(i)
}
//以上代码将输出0,1,3,4,5,6,7,8,9
//因为continue表示跳出当前本次循环 注意 是仅仅是这一次循环
//后续未执行完的次数将继续执行。
例题:
利用多重循环输出以下图形
Test01:
for(int i = 1 ;i <= 5; i++) { //外层循环控制层数
for (int j = 1; j <= 5 ; j++ ){//内层循环控制列数
System.out.print("*");
}
System.out.println("*");
}
}
结果:
Test02:
for(int i =1; i <= 5;i++){
for(int blank = 4; blank >= i ; blank--) {//在输出*前要先算出输出多少个空格
System.out.print(" ");
}
for(int j = 1; j <= 5; j++) {
System.out.print("*");
}
System.out.println();
}
结果:
Test03:
for (int i = 1; i <= 5; i++) {
for(int blank = 4; blank >= i; blank--) {
System.out.print(" ");
}
for(int raw = 1;raw <= 2*i-1; raw++) {
System.out.print("*");
}
System.out.println();
}
结果:
Test04:
输出一个下面图形,且可以自定义层数
在这里插入代码片
System.out.print("请输入图形上层行数:");
Scanner input = new Scanner(System.in);
int line = input.nextInt(); //用line接受输入的图形上层层数
for(int row = 1; row <= line; row++){ //控制上层层数
for(int i = line - 1; i >= row ; i--){ //当前行前面*左边的#数
System.out.print("#");
}System.out.print("*");
if (row > 1 ){ //上层中间由#组成的三角
for(int j = 1;j <= 2*(row - 1)-1;j++){
System.out.print("#");
}System.out.print("*");
}
for(int k = line - 1;k >= row; k--){ //当前行后面*右边得#数
System.out.print("#");
}System.out.println();
}
for(int row = line-1 ; row >= 1 ; row--){ //控制下层层数
for(int i = line-1 ; i >= row ; i--){ //当前行前面*左边的#数
System.out.print("#");
}
System.out.print("*");
if(row > 1){ //下层中间由#组成的倒三角
for(int j = 1 ; j <= 2*(row-1)-1 ; j++){
System.out.print("#");
}
System.out.print("*");
}
for(int k = line - 1 ; k >= row ; k--){ //后面*右边的#数
System.out.print("#");
}
System.out.println();
}
结果: