java08双重循环打印图形
public class Double01 { /** * 若有3个班级各4名学员参赛, * 如何计算每个班级参赛学员的平均分? */ public static void main(String[] args) { // 创建一个2维数组保存数据 double[][] scores = new double[3][4]; // 循环输入学员的成绩 Scanner scanner = new Scanner(System.in); // 定义一个变量 保存每个班级的总分 double sum = 0; // 01.外层循环控制班级数 for (int i = 0; i < scores.length; i++) { System.out.println("请您输入第" + (i + 1) + "个班级的学生成绩************"); // 02.内层循环控制学生人数 for (int j = 0; j < scores[i].length; j++) { System.out.println("请您输入第" + (j + 1) + "个学生成绩"); scores[i][j] = scanner.nextDouble(); sum += scores[i][j]; } System.out.println("第" + (i + 1) + "个班级的平均分是:" + (sum / scores[i].length)); // 总分清零 为了下个班级的总分计算 sum = 0; } } }
public class Double02 { /** * 直角三角形 */ public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.println("请您输入需要显示的行数:"); int num = scanner.nextInt(); // 外层循环控制行数 for (int i = 1; i <= num; i++) { for (int j = 1; j <= 2 * i - 1; j++) { System.out.print("*"); } System.out.println(); // 换行 } System.out.println("========================"); // 倒三角 for (int i = 1; i <= num; i++) { for (int j = 1; j <= num + 1 - i; j++) { System.out.print("*"); } System.out.println(); // 换行 } } }
public class Double03 { /** * 九九乘法表 */ public static void main(String[] args) { // 外层循环控制行数 for (int i = 1; i <= 9; i++) { // 内层循环控制列 j<=i for (int j = 1; j <= i; j++) { System.out.print(i + "*" + j + "=" + (i * j) + "\t"); } System.out.println(); } } }
public class Double04 { /** * 冒泡排序 * 01.外层循环N-1 (N:数组的长度) * 02.内层循环N-1-i (i:比较的轮数,外层循环的变量) * 03.两两相比 小靠前!必须进行等量转换!互换位置! */ public static void main(String[] args) { int[] nums = { 80, 20, 25, 30, 1, 8, 100, 72, 50 }; // 外层循环控制轮数 for (int i = 0; i < nums.length - 1; i++) { // 内层循环控制比较次数 for (int j = 0; j < nums.length - 1 - i; j++) { // 两两相比 小靠前! 如果后面的小,需要和前面的数据互换位置 if (nums[j + 1] < nums[j]) { int temp = 0; temp = nums[j + 1]; nums[j + 1] = nums[j]; nums[j] = temp; } } } System.out.println("排序之后的数组:" + Arrays.toString(nums)); } }
public class Double05 { /** * 若有3个班级各4名学员参赛, * 如何计算每个班级参赛学员的平均分? * 计算成绩大于85分的学生数量 */ public static void main(String[] args) { // 创建一个2维数组保存数据 double[][] scores = new double[3][4]; // 循环输入学员的成绩 Scanner scanner = new Scanner(System.in); // 定义一个变量保存 大于85分的学生数量 int count = 0; // 01.外层循环控制班级数 for (int i = 0; i < scores.length; i++) { System.out.println("请您输入第" + (i + 1) + "个班级的学生成绩************"); // 02.内层循环控制学生人数 for (int j = 0; j < scores[i].length; j++) { System.out.println("请您输入第" + (j + 1) + "个学生成绩"); scores[i][j] = scanner.nextDouble(); // 获取学生成绩 if (scores[i][j] < 85) { continue; // 如果分数少于85 不计算次数 } count++; } } System.out.println("85分以上的学生人数是:" + count); } }
public class Double07 { /** * 有3名顾客去商场购物,每人买3件商品 商品单价300元以上的商品享受8折优惠 请统计每人享受打折优惠的商品的数量 */ public static void main(String[] args) { // 保存顾客打折的商品数量 int count = 0; double price = 0; Scanner scanner = new Scanner(System.in); // 控制顾客的数量 for (int i = 1; i <= 3; i++) { System.out.println("请输入第" + i + "名顾客购买的商品价格"); for (int j = 1; j <= 3; j++) { price = scanner.nextDouble(); if (price < 300) { continue; } count++; } System.out.println("第" + i + "名顾客打折的商品数量:" + count); count = 0; } } }
// 九九乘法表 外层循环每执行一次,内层循环执行一遍 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();// 换行 }
// 正三角形 for (int i = 1; i <= 5; i++) { // 先输出空格 for (int j = 1; j <= 5 - i; j++) { System.out.print(" "); } // 打印 * for (int j = 1; j <= 2 * i - 1; j++) { System.out.print("*"); } System.out.println(); }
// 正三角形 for (int i = 1; i <= 5; i++) { // 先输出空格 for (int j = 1; j <= 5 - i; j++) { System.out.print(" "); } // 打印 * for (int j = 1; j <= 2 * i - 1; j++) { System.out.print("*"); } System.out.println(); } // 倒三角形 for (int i = 1; i <= 4; i++) { for (int j = 1; j <= i; j++) { // 空格 System.out.print(" "); } for (int j = 1; j <= 9 - 2 * i; j++) { // * System.out.print("*"); } System.out.println(); }
// 打印平行四边形 for (int i = 1; i <= 5; i++) { for (int j = 1; j <= 5 - i; j++) { // 空格 System.out.print(" "); } for (int j = 1; j <= 5; j++) { // * System.out.print("*"); } System.out.println(); }
=====================循环的小练习================================
@Test public void test01() { /** * 循环录入某学生5门课的成绩并计算平均分, * 如果某分数录入为负,停止录入并提示录入错误 */ Scanner scanner = new Scanner(System.in); System.out.println("请输入您的姓名:"); String name = scanner.next(); double sum = 0; // 循环获取用户的成绩 for (int i = 1; i <= 3; i++) { System.out.println("请输入第" + i + "门课程的成绩:"); double score = scanner.nextDouble(); // 如果输入了负数 则跳出循环体 if (score < 0) { System.out.println("您的输入有误!"); break; } sum += score; // 计算总成绩 } // 对数字进行格式化 DecimalFormat df = new DecimalFormat("#.00"); System.out.println("平均分为:" + df.format((sum / 3))); } @Test // 10以内的整数相加,值大于20的时候输出并且跳出循环 public void test02() { int sum = 0; for (int i = 1; i <= 10; i++) { sum += i; if (sum > 20) { System.out.println(sum); break; } } } /** * 循环录入Java课的学生成绩, * 统计分数大于等于80分的学生比例 */ @Test public void test03() { Scanner scanner = new Scanner(System.in); System.out.println("请您输入班级的人数:"); int total = scanner.nextInt(); // 总人数 double score = 0; // 成绩 int sum = 0;// 记录大于80分的人数 for (int i = 1; i <= total; i++) { // 循环录入成绩 System.out.println("请输入第" + i + "门课程的成绩:"); score = scanner.nextDouble(); if (score >= 80) { // 如果成绩大于80 sum++ sum++; continue; // 结束本次循环 执行i++语句 继续执行下次的循环 } System.out.println("小于80分 才能执行这句话!"); } // 输出百分比 sum(大于80)/total(总人数) DecimalFormat df = new DecimalFormat("#.00%"); System.out.println("80分以上的百分比是:" + df.format(sum / (total + 0.0))); } @Test // 1-10之间的偶数和 public void test04() { int sum = 0; for (int i = 1; i <= 10; i++) { if (i % 2 != 0) { // 奇数就要不相加 continue; } sum += i; } System.out.println("偶数和是:" + sum); } @Test // 双重循环中的 continue public void test05() { for (int i = 1; i <= 2; i++) { for (int j = 1; j <= 3; j++) { if (j == 2) { break; } System.out.println("j" + j); } } Scanner scanner = new Scanner(System.in); String next = scanner.next(); System.out.println(next); }