• 第四节:逻辑控制【java】


    目录

    📃1.顺序结构

    📗2.分支结构

    2.1 if 语句

    2.2 switch 语句

    📕3.循环结构

    3.1 while 循环

    3.2 break

    3.3 continue

    3.4 for 循环

    3.5 do while 循环(选学)

    📙4.输入输出

    4.1 输出到控制台

     4.2 从键盘输入

    📒5.猜数字游戏 


     

    📃1.顺序结构

    顺序结构比较简单,按照代码书写的顺序一行一行执行

    1. System.out.println("aaa");
    2. System.out.println("bbb");
    3. System.out.println("ccc");
    4. // 运行结果
    5. aaa
    6. bbb
    7. ccc

    📗2.分支结构

    2.1 if 语句

    1️⃣语法格式1

    1. if(布尔表达式){
    2. // 语句
    3. }

    2️⃣语法格式2

    1. if(布尔表达式){
    2. // 语句1
    3. }else{
    4. // 语句2
    5. }

    3️⃣语法格式3

    1. if(布尔表达式1){
    2. // 语句1
    3. }else if(布尔表达式2){
    4. // 语句2
    5. }else{
    6. // 语句3
    7. }
    1. public class Tesk {
    2. public static void main(String[] args) {
    3. int a = 10;
    4. if(a < 10) {
    5. } else if(a > 15) {
    6. } else {
    7. }
    8. }
    9. }

    ❗特别注意:大括号要加在条件这一行。

    👉【练习

    1️⃣判断一个数字是奇数还是偶数

    1. public class Tesk {
    2. //判断一个数字是奇数还是偶数
    3. public static void main(String[] args) {
    4. int a = 10;
    5. if(a % 2 != 0) {
    6. System.out.println("奇数!");
    7. } else {
    8. System.out.println("偶数!");
    9. }
    10. }
    11. }

    2️⃣判断一个数字是正数,负数,还是零

    1. //判断一个数字是正数,负数,还是零
    2. public static void main(String[] args) {
    3. int a = 10;
    4. if(a > 0) {
    5. System.out.println("正数!");
    6. } else if(a < 0) {
    7. System.out.println("负数!");
    8. } else {
    9. System.out.println("0!");
    10. }
    11. }

    3️⃣判断一个年份是否为闰年

    1. //判断一个年份是否为闰年
    2. public static void main(String[] args) {
    3. int year = 2022;
    4. if(year % 100 == 0) {
    5. if(year % 400 == 0) {
    6. System.out.println(year + "是闰年");
    7. }else {
    8. System.out.println(year + "不是闰年");
    9. }
    10. }else {
    11. if(year % 4 == 0) {
    12. System.out.println(year + "是闰年");
    13. }else {
    14. System.out.println(year + "不是闰年");
    15. }
    16. }
    17. }

    2.2 switch 语句

    🔺基本语法

    1. switch(表达式){
    2. case 常量值1:{
    3. 语句1;
    4. [break;]
    5. }
    6. case 常量值2:{
    7. 语句2;
    8. [break;]
    9. }
    10. ...
    11. default:{
    12. 内容都不满足时执行语句;
    13. [break;]
    14. }
    15. }
    💡  执行流程:

     

    1. 先计算表达式的值
    2. 和case依次比较,一旦有响应的匹配就执行该项下的语句,直到遇到break时结束
    3. 当表达式的值没有与所列项匹配时,执行default
    1. //switch 语句
    2. public static void main(String[] args) {
    3. int a = 1;
    4. switch (a) {
    5. case 1:
    6. System.out.println("1");
    7. break;
    8. case 2:
    9. System.out.println("2");
    10. break;
    11. default:
    12. System.out.println("输入有误!");
    13. break;
    14. }
    15. }

    🙈不能做Switch的参数的数据类型是什么?


    🙉long    double    float    boolean    

    📕3.循环结构

    3.1 while 循环

    基本语法格式:

    1. while(循环条件){
    2. 循环语句;
    3. }

    ➡️循环条件为 true, 则执行循环语句; 否则结束循环.

    1️⃣代码示例1:打印 1 - 10 的数字

    1. int num = 1;
    2. while (num <= 10) {
    3. System.out.println(num);
    4. num++;
    5. }

    2️⃣代码示例2: 计算 1 - 100 的和

    1. //代码示例2: 计算 1 - 100 的和
    2. public static void main(String[] args) {
    3. int a = 1;
    4. int sum = 0;
    5. while (a <= 100) {
    6. sum += a;
    7. a++;
    8. }
    9. System.out.println(sum);
    10. }

    3️⃣代码示例3: 计算 5 的阶乘

    1. int n = 1;
    2. int result = 1;
    3. while (n <= 5) {
    4. result *= n;
    5. n++;
    6. }
    7. System.out.println(num);
    8. // 执行结果
    9. 120

    4️⃣代码示例4: 计算 1! + 2! + 3! + 4! + 5!

    1. int num = 1;
    2. int sum = 0;
    3. // 外层循环负责求阶乘的和
    4. while (num <= 5) {
    5. int factorResult = 1;
    6. int tmp = 1;
    7. // 里层循环负责完成求阶乘的细节.
    8. while (tmp <= num) {
    9. factorResult *= tmp;
    10. tmp++;
    11. }
    12. sum += factorResult;
    13. num++;
    14. }
    15. System.out.println("sum = " + sum);

    特别注意

     

    1. 和 if 类似, while 下面的语句可以不写 { } , 但是不写的时候只能支持一条语句. 建议还是加上 { }
    2. 和 if 类似, while 后面的 { 建议和 while 写在同一行.
    3. 和 if 类似, while 后面不要多写 分号, 否则可能导致循环不能正确执行.

    3.2 break

    break 的功能是让循环提前结束.(结束所有循环,剩余循环不会再执行)

    1️⃣找到 100 - 200 中第一个 3 的倍数

    1. int num = 100;
    2. while (num <= 200) {
    3. if (num % 3 == 0) {
    4. System.out.println("找到了 3 的倍数, 为:" + num);
    5. break;
    6. }
    7. num++;
    8. }
    9. // 执行结果
    10. 找到了 3 的倍数, 为:102

    3.3 continue

    continue 的功能是跳过这次循环, 立即进入下次循环.

    1️⃣代码示例: 找到 100 - 200 中所有 3 的倍数

    1. int num = 100;
    2. while (num <= 200) {
    3. if (num % 3 != 0) {
    4. num++; // 这里的 ++ 不要忘记! 否则会死循环.
    5. continue;
    6. }
    7. System.out.println("找到了 3 的倍数, 为:" + num);
    8. num++;
    9. }
    🔺🔺执行到 continue 语句的时候, 就会 立刻进入下次循环(判定循环条件), 从而不会执行到下方的打印语句
    遇到continue,直接跳回循环

    3.4 for 循环

    ➡️【基本语法

    1. for(表达式①;布尔表达式②;表达式③){
    2. 表达式④;
    3. }
    表达式1: 用于初始化循环变量初始值设置,在循环最开始时执行,且只执行一次
    表达式2: 循环条件,满则循环继续,否则循环结束
    表达式3: 循环变量更新方式

    ➡️【执行过程

    ①②③④--->②③④--->②③④--->②③④--->②③④--->②③④--->...--->②为false,循环结束。

    1️⃣计算 1 - 100 的和

    1. int sum = 0;
    2. for (int i = 1; i <= 100; i++) {
    3. sum += i;
    4. }
    5. System.out.println("sum = " + sum);
    6. // 执行结果
    7. 5050
    ❗❗❗注意事项】 (和while循环类似)
    1. 和 if 类似, for 下面的语句可以不写 { } , 但是不写的时候只能支持一条语句. 建议还是加上 { }
    2. 和 if 类似, for 后面的 { 建议和 while 写在同一行.
    3. 和 if 类似, for 后面不要多写 分号, 否则可能导致循环不能正确执行.
    4. 和while循环一样,结束单趟循环用continue,结束整个循环用break

    3.5 do while 循环(选学)

    ✨【基本语法

    1. do{
    2. 循环语句;
    3. }while(循环条件);
    先执行循环语句, 再判定循环条件,循环条件成立则继续执行,否则循环结束

    1️⃣打印 1 - 10

    1. int num = 1;
    2. do {
    3. System.out.println(num);
    4. num++;
    5. } while (num <= 10);
    ❗❗❗ 【注意事项】
    1. do while 循环最后的分号不要忘记
    2. 一般 do while 很少用到, 更推荐使用 for 和 while.

    📙4.输入输出

    4.1 输出到控制台

    基本语法

    1. System.out.println(msg); // 输出一个字符串, 带换行
    2. System.out.print(msg); // 输出一个字符串, 不带换行
    3. System.out.printf(format, msg); // 格式化输出
    println 输出的内容自带 \n, print 不带 \n
    printf 的格式化输出方式和 C 语言的 printf 是基本一致的.

    🉐格式化字符串

    baa3129908bb4cbda3e8a900ba613ef1.png

     4.2 从键盘输入

    🔺使用 Scanner 读取字符串/整数/浮点数

    1. import java.util.Scanner; // 需要导入 util 包
    2. Scanner sc = new Scanner(System.in);
    3. System.out.println("请输入你的姓名:");
    4. String name = sc.nextLine();
    5. System.out.println("请输入你的年龄:");
    6. int age = sc.nextInt();
    7. System.out.println("请输入你的工资:");
    8. float salary = sc.nextFloat();
    9. System.out.println("你的信息如下:");
    10. System.out.println("姓名: "+name+"\n"+"年龄:"+age+"\n"+"工资:"+salary);
    11. sc.close(); // 注意, 要记得调用关闭方法

    6d65e7b718e44b9abcb455a0fc7c3f6e.png

     ❗❗❗读很多整数

    1. public class Tesk {
    2. //读很多整数
    3. public static void main(String[] args) {
    4. Scanner scan = new Scanner(System.in);
    5. while (scan.hasNextInt()) {
    6. int n =scan.nextInt();
    7. System.out.println("n = " + n);
    8. }
    9. }
    10. }

    4e8b459d5fee4a7898c2641c85bc52fe.png

     注意事项: 当循环输入多个数据的时候, 使用 ctrl + z 来结束输入 (Windows 上使用 ctrl + z, Linux / Mac 上使用 ctrl

    + d).

    📒5.猜数字游戏 

    游戏规则:

    系统自动生成一个随机整数(1-100), 然后由用户输入一个猜测的数字. 如果输入的数字比该随机数小, 提示 "低
    了", 如果输入的数字比该随机数大, 提示 "高了" , 如果输入的数字和随机数相等, 则提示 "猜对了" .
    1. public class Tesk {
    2. //猜数字游戏
    3. public static void main(String[] args) {
    4. Scanner scan = new Scanner(System.in);
    5. Random random = new Random();
    6. //生成随机数
    7. int randNum = random.nextInt(100);//[0,100)
    8. //System.out.println(randNum);
    9. //循环
    10. while (true) {
    11. System.out.println("请输入你要猜的数字:");
    12. int num = scan.nextInt();
    13. if(num >randNum) {
    14. System.out.println("你猜大了!");
    15. }else if(num == randNum) {
    16. System.out.println("猜对了!");
    17. break;
    18. }else {
    19. System.out.println("猜小了!");
    20. }
    21. }
    22. }

     

     

     

     

     

     

  • 相关阅读:
    开通5G网络服务三个月,中国广电交出了什么样的答卷?
    强烈 推荐 13 个 Web前端在线代码IDE
    ChatGPT竞争对手Writer,获得1亿美元融资
    VUE cli3.0项目打包部署服务器
    O-Star|再相识
    nginx的返回值替换模块sub_filter
    Python3教程:functools模块的用法
    eBPF Talk:变量声明的位置
    python:基于super()函数初始化
    【Kafka】Kafka再平衡机制及相关参数
  • 原文地址:https://blog.csdn.net/m0_72161237/article/details/127610490