MyDay5
for循环的嵌套
需求1:打印以下图形 **** **** **** for(int i = 0;i<3;i++){//外层循环控制行数 //System.out.println("****"); for(int j = 0;j<4;j++){//内层循环控制列数 System.out.print("*"); } System.out.println();//换行 } 需求2:打印以下图形 * i=0 ** i=1 *** i=2 **** i=3 ***** i=4 for(int i = 0;i<5;i++){ for(int j = 0;j<=i;j++){ System.out.print("*"); } System.out.println(); } 需求3:打印以下图形 * ** *** **** ***** for(int i = 0;i<5;i++){ for(int k = 0;k<4-i;k++){ System.out.print(" "); } for(int j = 0;j<=i;j++){ System.out.print("*"); } System.out.println(); } 需求4:打印以下图形 ***** **** *** ** * for(int i = 0;i<5;i++){ for(int j = 0;j<5-i;j++){ System.out.print("*"); } System.out.println(); } 需求5:打印以下图形 ***** **** *** ** * for(int i = 0;i<5;i++){ for(int k = 0;k<i;k++){ System.out.print(" "); } for(int j = 0;j<5-i;j++){ System.out.print("*"); } System.out.println(); } 需求6:打印以下图形 * *** ***** ******* for(int i = 0;i<4;i++){ for(int k = 0;k<3-i;k++){ System.out.print(" "); } for(int j = 0;j<i*2+1;j++){ System.out.print("*"); } System.out.println(); } 需求7:打印以下图形 * * * * * ******* for(int i = 0;i<4;i++){ for(int k = 0;k<3-i;k++){ System.out.print(" "); } for(int j = 0;j<i*2+1;j++){ //第一行 || 最后一行 || 第一列 || 最后一列 if(i == 0 || i == 3 || j == 0 || j == i*2){ System.out.print("*"); }else{ System.out.print(" "); } } System.out.println(); } 需求8:打印以下图形 ******* ***** *** * for(int i = 0;i<4;i++){ for(int k = 0;k<i;k++){ System.out.print(" "); } for(int j = 0;j<7-2*i;j++){ System.out.print("*"); } System.out.println(); } 需求9:打印以下图形 ******* * * * * * for(int i = 0;i<4;i++){ for(int k = 0;k<i;k++){ System.out.print(" "); } for(int j = 0;j<7-2*i;j++){ //第一行 || 最后一行 || 第一列 || 最后一列 if(i == 0 || i==3 || j == 0 || j == 7-2*i-1){ System.out.print("*"); }else{ System.out.print(" "); } } System.out.println(); } 需求10:九九乘法表 for(int i = 1;i<=9;i++){ for(int j = 1;j<=i;j++){ System.out.print(j + "x" + i + "=" + (i*j) + "\t"); } System.out.println(); } 需求11:九九乘法表 for(int i = 1;i<=9;i++){ for(int k = 1;k<i;k++){ System.out.print("\t"); } for(int j = i;j<=9;j++){ System.out.print(i + "x" + j + "=" + (i*j) + "\t"); } System.out.println(); } */
while循环
语法结构: while(表达式){ ...代码块/循环体... } 理解: 表达式的结果必须是boolean true -- 执行代码块 false - 跳出循环 死循环: while(true){ System.out.println("死循环"); }
小结:不知道循环次数的情况下使用while
do-while循环
语法结构: do{ ...代码块/循环体... }while(表达式); 理解: 首先,先运行一遍代码块,在判断表达式 表达式的结果必须是boolean true -- 执行代码块 false - 跳出循环 死循环: do{ System.out.println("死循环"); }while(true);
特点:先执行一次,再判断
知识点:for vs while vs do-while
表达式的区别: for(初始化变量;判断条件;更新变量){} while(判断条件){} do{}while(判断条件); 执行顺序的区别: for:先判断,再执行 while:先判断,再执行 do-while:先执行一遍,再判断 应用场景的区别: 循环次数确定时 -- for 循环次数不确定时,先判断再执行 -- while 循环次数不确定时,先执行一遍再判断 -- do-while
特殊的流程控制语句
break
作用:作用于循环中,表示跳出当前循环
做实验: for(int i = 1;i<=5;i++){ if(i == 3){ break; } System.out.println(i); } System.out.println("循环以外的代码");
continue
作用于循环中,表示跳过当前的代码块,进入到下一次循环
做实验: for(int i = 1;i<=5;i++){ if(i == 3){ continue; } System.out.println(i); } System.out.println("循环以外的代码");
return
作用于方法中,表示结束当前方法
做实验: System.out.println("111"); System.out.println("222"); if(true){ return; } System.out.println("333"); System.out.println("444");
lable
作用是给循环做标记(取名字)