一、多重控制循环
二、案列分析
public class DoWhileExercise02 {
public static void main(String[] args) {
for(int i = 0;i < 2;i++) {
for(int j = 0;j < 3;j++) {
System.out.println("i=" + i + "j=" + j);
}
}
}
}
三、练习一
统计三个班成绩情况,每个班有5名同学,求出各个班的平均分和所有班级的平均分(学生的成绩从键盘输入)
import java.util.Scanner;
public class MuForExercise01 {
public static void main(String[] args) {
/*
思路分析:
化繁为简
1.先计算一个班,五个学生的成绩,使用for
创建Scanner对象 然后接收用户输入成绩
2.得到该班级的平均分,定义一个变量把该班级的学生成绩统计
3.定义一个变量统计三个班的总成绩,计算出平均分
4.统计三个班及格人数 定义一个变量 使用if
先死后活
1.继续优惠效率,可读性,结构
*/
Scanner myScanner = new Scanner(System.in);
double sum2 = 0;//创建一个变量,统计全部班级总分数
int sum3 = 0;//统计三个班及格人数
int classnum = 3; //班级个数
int stnum = 5; //同学个数
for(int j = 1; j <= classnum; j++) { //j表示班级
double sum1 = 0;//创建一个变量,统计单个班级总分数
for(int i = 1; i <= stnum; i++) {//i表示学生
System.out.println("请输入" + j +"班第" + i +"位同学的成绩");
double grades = myScanner.nextDouble();
//当有同学成绩及格,sum3++
if(grades > 60) {
sum3++;
}
sum1 += grades;
}
System.out.println(j + "班的总成绩为" + sum1 +"平均分为" + (sum1 / 5));
sum2 += sum1;
}
System.out.println("三个班的总成绩为" + sum2 +"平均分为" + (sum2 / (3 * 5)));
System.out.println("及格人数为" + sum3 + "人");
}
}
练习二
打印出九九乘法表
public class MuForExercise02 {
public static void main(String[] args) {
for(int i = 1; i <= 9; i++) {
for(int j = 1; j <= i; j++) {
int n = i * j;
System.out.print(j + "x" + i + "=" + n + "\t");
}
System.out.println();
}
}
}
练习三
打印空心金字塔
import java.util.Scanner;
public class Stars {
public static void main(String[] args) {
//编写一个程序,可以接收一个整数,表示层数(totalLevel),打印出金字塔
Scanner myScanner = new Scanner(System.in);
System.out.println("请输入层数");
int totalLevel = myScanner.nextInt();
for(int i = 1; i <= totalLevel; i++) {//i表示层数
// 在输出*之前,还有输出对应空格 = 总层数-当前层数
for(int k = 1; k <= totalLevel - i; k++) {
System.out.print(" ");
}
//控制打印每层的*个数
for(int j = 1; j <= 2 * i - 1; j++) {
//当前行的第一个是*最后一个也是*,其他都是空格,最后一层全部是*
if(j == 1 || j == 2 * i - 1 || i == totalLevel) {//满足条件输出*
System.out.print("*");
}else {//其他情况输出空格
System.out.print(" ");
}
}
// 每打印完一层*后就换行,println本身会换行
System.out.println();
}
}
}
练习四
打印空心菱形
import java.util.Scanner;
public class Stars {
public static void main(String[] args) {
//编写一个程序,可以接收一个整数,表示层数(totalLevel),打印出金字塔
Scanner myScanner = new Scanner(System.in);
System.out.println("请输入层数");
int totalLevel = myScanner.nextInt();
//上半层
for(int i = 1; i <= totalLevel; i++) {//i表示层数
// 在输出*之前,还有输出对应空格 = 总层数-当前层数
for(int k = 1; k <= totalLevel - i; k++) {
System.out.print(" ");
}
//控制打印每层的*个数
for(int j = 1; j <= 2 * i - 1; j++) {
//当前行的第一个是*最后一个也是*,其他都是空格,最后一层全部是*
if(j == 1 || j == 2 * i - 1) {//满足条件输出*
System.out.print("*");
}else {//其他情况输出空格
System.out.print(" ");
}
}
// 每打印完一层*后就换行,println本身会换行
System.out.println();
}
//下半层
for(int i = totalLevel - 1; i >= 1; i--) {
for(int k = 1; k <= totalLevel - i; k++) {
System.out.print(" ");
}
for(int j = 1; j <= 2 * i - 1; j++) {
if(j == 1 || j == 2 * i - 1 || i == totalLevel) {
System.out.print("*");
}else {
System.out.print(" ");
}
}
// 每打印完一层*后就换行,println本身会换行
System.out.println();
}
}
}