多重循环
1.打印图案
经过打印分析:外层循环控制行数,内层循环控制列数
打印三角形:
第一行元素的个数决定了计数器的初始值
如果元素是越来越多,那么计数器变化为++,当计数器为++,
我们必须设置一个上限,也就是判断条件必须小于或者小于等于某个值
如果元素是越来越少,那么计数器变化为--,
我们必须设置一个下限,也就是判断条件必须大于或者大于等于某个值
package com.edu.test1;
/**
* 使用多重循环打印平行四边形
*
* 经过打印分析:外层循环控制行数,内层循环控制列数
*
* 打印三角形:
* 第一行元素的个数决定了计数器的初始值
* 如果元素是越来越多,那么计数器变化为++,当计数器为++,
* 我们必须设置一个上限,也就是判断条件必须小于或者小于等于某个值
* 如果元素是越来越少,那么计数器变化为--,
* 我们必须设置一个下限,也就是判断条件必须大于或者大于等于某个值
*
*
*/
public class Test2 {
public static void main(String[] args) {
for (int i = 1; i <= 5; i++) {
// 左半部分 三角形
for(int j = 5;j >= i;j--) {
System.out.print("&");
}
// 右半部分 矩形
for(int j = 1;j <= 5;j++) {
System.out.print("*");
}
// 换行
System.out.println();
}
}
}
package com.edu.test2;
/**
* 使用多重循环打印正三角形
*
*/
public class Test1 {
public static void main(String[] args) {
for (int i = 1; i <= 5; i++) {// 外层循环 控制行数
// 左半部分
for(int j = 5;j >= i;j--) {
System.out.print("%");
}
// 右半部分
// 右半部分的元素个数 规律为 :行号 * 2 - 1 行号就是i
for(int j = 1;j <= 2 * i -1;j++) {
System.out.print("*");
}
// 换行
System.out.println();
}
}
}
2. 练习
打印99乘法表
package com.edu.test2;
/**
* 使用双重循环打印99乘法表
*
*/
public class Test2 {
public static void main(String[] args) {
for (int i = 1; i <= 9; i++) {
for (int j = 1; j <= i; j++) {
System.out.print(j + "*" + i + "=" + i * j + "\t");
}
System.out.println();
}
}
}
打印银行菜单
package com.edu.test2;
import java.util.Scanner;
/**
* 使用switch和do-while实现银行菜单打印
*
* 对齐:ctrl + a ctrl + i
*
*
*/
public class Test4 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int choice;
do {
System.out.println("============欢迎使用ATM银行系统============");
System.out.println("1.开户 2.存款 3.取款 4.转账 5.修改密码 6.查询余额 0.退出");
System.out.println("=========================================");
choice = input.nextInt();
switch (choice) {
case 1:
System.out.println("执行开户功能");
break; // break存在於switch中 將只跳出switch 不会影响do-while循环
case 2:
System.out.println("执行存款功能");
break;
case 3:
System.out.println("执行取款功能");
break;
case 4:
System.out.println("执行转账功能");
break;
case 5:
System.out.println("执行修改密码");
break;
case 6:
System.out.println("执行查询余额功能");
break;
case 0:
System.out.println("退出");
break;
default:
System.out.println("输入 错误,请重新输入");
break;
}
} while (choice != 0);
}
}
统计班级平均分
package com.edu.test2;
import java.util.Scanner;
/**
* 需求:计算3个班,每个班5名同学的平均成绩。
* 外层循环控制班级的个数
* 内层循环控制每个班的人数
*
*
*/
public class Test3 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
for (int i = 1; i <= 3; i++) {
int sum = 0; // 将统计分数变量写在循环中 表示每次进入循环将上一个班的成绩重新清零
for (int j = 1; j <= 5; j++) {
System.out.println("请输入第个" + i +"班第"+ j +"个人的成绩");
int score =input.nextInt();
sum += score;
}
System.out.println("第"+ i +"个班的平均分是:" + sum / 5);
}
}
}