08.Java if 单选择结构/if-else 双选择结构/if-else if-else 多选择结构/switch 多选择结构

前言

流程控制语句是用来控制程序中各语句执行顺序的语句

逻辑结构

  1. 顺序结构:先执行 a,再执行 b
  2. 选择结构:如果……,则……
  3. 循环结构:如果……,则再继续……

if 单选择结构

语法结构

if 语句对布尔表达式进行一次判定,若判定为真,则执行 {} 中的语句块,否则跳过该语句块。

if(布尔表达式){
  语句块;
}

流程图

代码示例:随机数

public class Testif {
    public static void main(String[] args) {
        System.out.println(Math.random());               // 返回一个 0 到 1 之间的随机数
        System.out.println((int)(6 * Math.random()));    // 返回一个 0 到 5 之间的随机数
        System.out.println((int)(6 * Math.random() + 1));// 返回一个 1 到 6 之间的随机数
    }
}

注意点

  1. java.lang 包中的 Math 类提供了一些用于数学计算的方法。
  2. Math.random() 方法可用于产生一个 0 到 1 区间的 double 类型的随机数,但不包括 1
  3. 案例:int i = (int)(6 * Math.random()); // 产生 [0,5] 之间的随机整数。

代码示例:掷骰子游戏

// 生成三个随机数 [1,6],模拟掷骰子游戏
public class Testif {
    public static void main(String[] args) {
        int i = (int)(6 * Math.random() + 1);            // 返回一个 1 到 6 之间的随机数
        int j = (int)(6 * Math.random() + 1);            // 返回一个 1 到 6 之间的随机数
        int k = (int)(6 * Math.random() + 1);            // 返回一个 1 到 6 之间的随机数
        int count = i + j + k;
        // 如果是哪个筛子之和大于 15,则手气不错
        if (count > 15){    // 错误写法:10 <= count <= 15
            System.out.println("今天手气可以");
        }
        // 如果是三个筛子之和在 10 到 15 之间,则手气一般。
        if (count >= 10 && count <= 15){
            System.out.println("今天手气一般");
        }
        // 如果是三个筛子之和小于 10,则手气一般。
        if (count < 10){
            System.out.println("今天手气不太行");
        }
        System.out.println("总共获得了 " + count + " 分");
    }
}

if-else 双选择结构

语法结构

if(布尔表达式){
  语句块1;
}else{
  语句块2;
}

流程图

代码示例

// 测试 if-else 双选择语句
public class TestIfelse {
    public static void main(String[] args) {
        int a = (int)(6 * Math.random() + 1);
        if (a < 3){
            System.out.println("小");
        }else{
            System.out.println("大");
        }
        System.out.println("这次随机数的结果是 "+ a);
    }
}

if-else if-else 多选择结构

一直判断选择条件,直到遇到符合的条件,执行语句块内容为止

语法结构

if (布尔表达式1){
  语句块1;
}else if(布尔表达式2) {
  语句块2;
}……
else if(布尔表达式n){
  语句块n;
} else if(布尔表达式n+1){
  语句块n+1;
}

代码示例

// 测试多选择结构
public class TestIfElseIfElse {
    public static void main(String[] args) {
        int age = (int)(100 * Math.random());   // 生成 0 到 100 的随机整数
        System.out.println("这次判断的年龄是 "+ age + " 岁");
        if (age < 15){
            System.out.println("儿童,比较喜欢玩!");
        }else if (age < 25){
            System.out.println("青年,热爱学习!");
        }else if (age < 45){
            System.out.println("中年,需要工作!");
        }else if (age < 65){
            System.out.println("中老年人,得补钙!");
        }else if (age < 85){
            System.out.println("老年人,多锻炼");
        }else{
            System.out.println("寿星,你真牛");
        }
    }
}

switch 多选择结构

遇到多值判读时,优先使用 switch。

switch多选择结构图

语法结构

如果没有 break,语句就会往下执行。break 用于结束 switch 语句。

switch (表达式){
  case 值1;
    语句序列1;
    [break];
  case 值2;
    语句序列2;
    [break];
 …… …… ……
  [default:
    默认语句;]
}

代码示例

如果没有 break,语句就会往下执行。break 用于结束 switch 语句。

public class TestSwitch {
    public static void main(String[] args){
        int sieve = (int)(1+6*Math.random());
        System.out.println("随机筛子数是:" + sieve);

        switch (sieve){
            case 1:
                System.out.println("筛子数是1");
                break;
            case 2:
                System.out.println("筛子数是2");
                break;
            case 3:
                System.out.println("筛子数是3");
                break;
            default:
                System.out.println("筛子数大于3");
                break;
        }
    }
}
posted @ 2021-10-27 10:44  阿jun  阅读(126)  评论(0)    收藏  举报