switch条件语句、循环结构
循环结构
while
1.先判断再执行代码
2.代码块至少执行0次
do…while…
1.先执行代码再执行判断
2.代码块至少执行1次
for
1.用于编写已知循环次数的情况
2.代码块至少执行0次
最佳实践
1.对于未知循环次数,或者无限循环使用while循环
2.先执行代码再执行判断的情况,使用do…while…循环
3.对于已知循环次数的情况,使用for循环
示例1:打印100次
int i = 1;
while (i <= 100) {
System.out.println(i + ".好好学习,天天向上!");
i++;
}
示例2:上午看书、下午敲代码、晚上检查,不合格重来
Scanner sc = new Scanner(System.in);
do {
System.out.println("上午看书");
System.out.println("下午敲代码");
System.out.println("老师检查(1.通过;0.不通过)");
} while (sc.nextInt() != 1);
sc.close();
for循环的使用
三部分
1.变量初始化赋值
2.入口条件判断
3.修改变量值,设置步长
执行流程
变量初始化赋值 -> 条件判断 -> 代码块 -> 修改变量值 -> 条件判断 -> 代码块 -> …
for (int j = 1; j <= 100; j++) {
System.out.println(j + ".好好学习,天天向上!");
}
// 等同于
// int j = 1;
// for (;;) {
// if (j <= 100) {
// System.out.println(j + ".好好学习,天天向上!");
// j++;
// } else {
// break; // 跳出本层循环
// }
// }
System.out.println("100遍写完了!");
例题1:统计5门课程的平均分
public class Work01 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入你的姓名:");
//String name = sc.next(); // 遇到空格会停止字符扫描
String name = sc.nextLine(); // 扫描一行字符
int sum = 0;
for (int i = 1; i <= 5; i++) {
System.out.println("请输入第" + i + "门课的成绩:");
sum += sc.nextInt();
}
System.out.println(name + "的平均分是:" + (sum / 5.0));
sc.close();
}
例题2:打印一个数的加法表
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个整数:");
int num = sc.nextInt();
for (int i = 0; i <= num; i++) {
System.out.println(i + "+" + (num - i) + "=" + num);
}
sc.close();
}
例题3:计算100以内所有偶数和
public static void main(String[] args) {
// int sum = 0;
// for (int i = 0; i <= 100; i+=2) {
// sum += i;
// }
// System.out.println(sum);
// int sum = 0;
// int i = 0;
// while (i <= 100) {
// sum += i;
// i+=2;
// }
// System.out.println(sum);
int sum = 0;
int i = 0;
do {
sum += i;
i+=2;
} while(i <= 100);
System.out.println(sum);
}
例题4:打印以下几何图形(行数由用户控制)
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-M6tfcet7-1618549776318)(C:\Users\15121\AppData\Roaming\Typora\typora-user-images\image-20200622204034313.png)]
第一个:
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入行数:");
int line = sc.nextInt();
// 控制行数
for (int i = 1; i <= line; i++) {
// 控制每行的*数
for (int j = 1; j <= i; j++) {
System.out.print("*");
}
System.out.println();
}
sc.close();
}
第二个:
public class qwqeqwe {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入行数:");
int line = sc.nextInt();
for (int i = 1; i <= line; i++) {
for (int j = 1; j <= i; j++) {
System.out.print(" ");
}
System.out.println("******");
}
sc.close();
}
第三个:
public class qwqeqwe {
public static void main(String[] args) {
System.out.println("请输入行数:");
Scanner sc = new Scanner(System.in);
int input = sc.nextInt();
for (int j = 1; j <= input; j++) {
for (int i = 0; i < input - j; i++) {
System.out.print(" ");
}
for (int i = 1; i <= (j * 2) - 1; i++) {
System.out.print("*");
}
for (int i = 0; i < input - j; i++) {
System.out.print(" ");
}
System.out.println(" ");
}
sc.close();
}
nt(" ");
}
for (int i = 1; i <= (j * 2) - 1; i++) {
System.out.print("*");
}
for (int i = 0; i < input - j; i++) {
System.out.print(" ");
}
System.out.println(" ");
}
sc.close();
}