您的位置:首页 > 编程语言

基本程序逻辑:分支结构知识点归纳及代码练习

2020-06-13 12:35 24 查看

Branch Structure 分支结构

  • 2.2: switch-case(break;
  • 3. 使用说明
  • 4. 代码展示
  • 1. 定义

    定义:根据条件,选择性地执行某段代码。
    注意点:条件表达式必须是布尔表达式(关系表达式或逻辑表达式),布尔型变量。

    2.分类

    分支结构有2种;if…else(break;)和switch-case(break;)。

    2.1: if…else(break;)

    2.1.1: if…else(break;)的3种结构

    ①: if(条件表达式){
    执行表达式
    }
    ②:2选1;
    if(条件表达式){
    执行表达式1
    }else{
    执行表达式2
    }
    ③: n选1。
    if(条件表达式){
    执行表达式1
    }else if(条件表达式){
    执行表达式2
    }else if(条件表达式){
    执行表达式3
    }

    else{
    执行表达式n
    }

    2.1.2:注意

    1.else 结构是可选的。即可以省略 else 。
    2.针对于条件表达式:
    ① 如果多个条件表达式之间是“互斥”关系(或没有交集的关系),无所谓声明顺序。
    ②如果多个条件表达式之间有交集的关系,需要根据实际情况,考虑清楚应该将哪个结构声明在上面。
    ③ 如果多个条件表达式之间有包含的关系,通常情况下,需要将范围小的声明在范围大的上面。
    3.if-else结构是可以相互嵌套的。
    4.如果if-else结构中的执行语句只有一行时,对应的一对{}可以省略的。但是,不建议大家省略。

    2.2: switch-case(break;

    2.2.1:格式

    switch(算术表达式){
    case 常量1:
    执行语句1;
    //break;
    case 常量2:
    执行语句2;
    //break;

    default:
    执行语句n;
    //break;
    }

    2.2.2:注意

    1. switch结构中的表达式,只能以下6种数据类型之一:
      byte 、short、char、int、枚举类型(JDK5.0新增)、String类型(JDK7.0新增)
    //String型 赋值格式。
    String season = "summer";  case "spring":
    1. case 之后只能声明常量。不能声明范围,不能是变量名或不确定的表达式值;
    2. 同一个switch语句,所有case子句中的常量值互不相同;
    3. break; 用来在执行完一个case分支后使程序跳出switch语句块;如果没有break; 程序会顺序执行到switch结尾。break关键字是可选的,即可省略部分。
    4. default子句是可任选的,位置也是灵活的。当没有匹配的case时,执行default。相当于if-else结构中的else。

    3. 使用说明

    1. 凡是可以使用switch-case的结构,都可以转换为if-else。反之,不成立。
    2. 我们写分支结构时,当发现既可以使用switch-case,(同时,switch中表达式的取值情况不太多),又可以使用if-else时,我们优先选择使用switch-case。
      原因:switch-case执行效率稍高。

    4. 代码展示

    示例代码

    //输入三个正整数,并获取它们之中的最大值。(最小值)
    public void thereIntergeSort() {
    /*
    //方法一:三元运算符。
    int m,n,k;
    m = 2; n = 8;k =2;
    int max = (m > n)?m : n;
    int max1 = (max >= k)?max : k;
    System.out.println("三个数中最大值为:" + max1);
    */
    //        /*
    //方法二:if-else分支循环结构。
    int m, n, k;
    m = 2;
    n = 8;
    k = 2;
    //int m = 2; n = 8; k = 2;
    if (m >= n && n >= k) {
    System.out.println("三个数中最大值为:" + m);
    } else if (n >= m && n >= k) {
    System.out.println("三个数中最大值为:" + n);
    } else {
    System.out.println("三个数中最大值为:" + k);
    }
    //        */
    }
    //由键盘输入三个整数分别存入变量num1、num2、num3 ;对它们进行排序(使用 if-else if-else),并且从小到大输出。
    public void scoreTrere() {
    Scanner scanner = new Scanner(System.in);
    
    System.out.print("请输入第一个整数:");
    int num1 = scanner.nextInt();
    System.out.print("请输入第二个整数:");
    int num2 = scanner.nextInt();
    System.out.print("请输入第三个整数:");
    int num3 = scanner.nextInt();
    
    if (num1 >= num2) {
    if (num3 >= num1)
    System.out.println(num2 + "," + num1 + "," + num3);
    else if (num3 <= num2)
    System.out.println(num3 + "," + num2 + "," + num1);
    else
    System.out.println(num2 + "," + num3 + "," + num1);
    } else {
    if (num3 >= num2)
    System.out.println(num1 + "," + num2 + "," + num3);
    else if (num3 <= num1)
    System.out.println(num3 + "," + num1 + "," + num2);
    else
    System.out.println(num1 + "," + num3 + "," + num2);
    }
    }
    内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
    标签: