掌握Java二重循环
//如何使用循环输出下面的图形
**** **** *
**** ***** ***
**** **** *****
**** ***** *******
//外层循环输出行数,内层循环输出列数
// 打印金字塔
for (int i=1;i<5;i++) {
for (int j = 0; j < 5 - i; j++) {
System.out.print(" ");
}
for (int k = 0; k < 2 * i - 1; k++) {
System.out.print("#");
}
System.out.println();
}
// 打印平行四边形
for(int i=0;i<5;i++){
for (int j=0;j<4-i;j++){
System.out.print(" ");
}
for (int k=0;k<5;k++){
System.out.print("*");
}
System.out.println(" ");
}
//打印四边形
for(int i=0;i<4;i++){
for (int j=0;j<4;j++){
System.out.print("*");
}
System.out.println();
}
什么是多重循环
一个循环体内又包含另一个完整的循环结构
while(循环条件1){//外循环
//循环操作1
while(循环条件2){//内循环
//循环操作2
}
}
do{
//循环操作1
do{
//循环操作2
}while(循环条件2);
}while(循环条件1);
多重循环的使用
各循环可互相嵌套 一般不超过三层 外层循环变量变化一次,内层循环变量要变化一遍
练习:使用多重循环打印九九乘法表
for(int i=1;i<=9;i++){
for (int j=1;j<=i;j++){
System.out.print(i + "*" + j + "=" + (i * j)+"\t");
}
System.out.println(" ");
}
使用跳转语句控制程序流程
break语句
改变程序控制流 用于do-while、while、for循环中,可跳出循环而执行循环后面的语句
break通常在循环中与条件语句一起使用,跳出当前循环
如何使用break语句
循环录入某学生5门课的成绩并计算平均分,如果某分数录入为负,停止录入并提示录入错误
Scanner input =new Scanner(System.in);
System.out.print("输入学生姓名");
String name=input.next();
System.out.println(name);
int score=0;
double avg=0;
do {
for (int i=0;i<5;i++){
System.out.println("请输入第" + (i + 1) + "门课的成绩");
score=input.nextInt();
avg+=score;
if(score<0){
System.out.println("录入错误请重输");
avg=0;
break;
}
}
}while (score<0);
System.out.println(name + "的平均分是:" +avg/5 );
什么是continue语句
continue :只能用在循环里 continue 作用:跳过循环体中剩余的语句而执行下一次循环
练习:求1~10之间的所有偶数和
int sum=0;
for (int i=1;i<=10;i++){
if (i%2==0){
sum+=i;
}else {
continue;
}
}
System.out.println(sum);
对比break和continue
使用场合 break常用于switch结构和循环结构中 continue一般用于循环结构中
作用(循环结构中) break语句终止某个循环,程序跳转到循环块外的下一条语句 continue跳出本次循环,进入下一次循环 双重循环亦如此
练习2:打印数列使用循环输出 100、95、90、85.......5 提示:可尝试使用for、while、do-while三种循环实现
int i=0;
for( i=100;i>0;i--){
if(i%5==0){
System.out.print(i+"\t");
}
}
System.out.println(" ");
i=100;
while(i>0){
if(i%5==0){
System.out.print(i+"\t");
}
i--;
}
System.out.println(" ");
i=100;
do {
if(i%5==0){
System.out.print(i+"\t");
}
i--;
}while (i>0);
练习3:使用双重循环根据用户输入的数字,输出如下图形
System.out.println("输入一个数");
Scanner input=new Scanner(System.in);
int num=input.nextInt();
// // 打印数字金字塔
for (int i=1;i<=num;i++) {
for (int j = 0; j < num - i; j++) {
System.out.print(" ");
}
for (int k = 0; k < 2 * i - 1; k++) {
System.out.print(i);
}
System.out.println();
}