美文网首页
Java基础系列8-流程语句之顺序及选择结构

Java基础系列8-流程语句之顺序及选择结构

作者: 只是甲 | 来源:发表于2021-08-11 14:01 被阅读0次

    一.流程语句概述

      在一个程序执行的过程中,各条语句的执行顺序对程序的结果是有直接影响的。也就是说程序的流程对运行结果有直接的影响。所以,我们必须清楚每条语句的执行流程。而且,很多时候我们要通过控制语句的执行顺序来实现我们要完成的功能。

    流程控制语句分类:

    1. 顺序结构
    2. 选择结构
    3. 循环结构

    二. 顺序结构语句

      程序中最简单最基本的流程控制,没有特定的语法结构,按照代码的先后顺序,依次执行,程序中大多数的代码都是这样执行的。

    顺序结构流程图:


    image.png

    三. 选择结构语句 【if、switch】

    3.1 if选择结构语句

    3.1.1 第一种格式

    if语句执行流程:

    1. 判断关系表达式看其结果是true还是false
      1)如果是 true 就执行语句体
      2)如果是 false 就不执行语句体

    选择结构 if语句第一种格式:

    if (关系表达式) {
        语句体;
    }
    
    //实例
    if (a == b) {
       System.out.println("a等于b");
    }
    
    //或者
    if (关系表达式) 语句体;
    //实例
    if (a == b) System.out.println("a等于b");
    

    执行流程图:


    image.png

    代码:

    package Java_study;
    
    public class if1 {
        public static void main(String[] args) {
            // 开始
            System.out.println("开始");
            
            // 定义两个int类型的变量
            int a = 10;
            int b = 20;
            //判断两个变量是否相等
            //10 == 20 => false => 不执行语句体
            if (a == b) {
                //未执行此预聚体
                System.out.println("a等于b");
            }
            
            //定义变量
            int c = 10;
            // 10 == 10 => true => 执行语句体
            if (a ==c) {
                //a 等于 c
                System.out.println("a等于c");
            }
            
            //结束
            System.out.println("结束");
        }
    
    }
    

    测试记录:

    开始
    a等于c
    结束
    

    3.1.2 第二种格式

    if语句执行流程:

    1. 首先判断关系表达式看其结果是true还是false
      1)如果是true就执行语句体1
      2)如果是false就执行语句体2

    选择结构 if语句第二种格式:

    if(关系表达式) {
                 语句体1;
        }else {
                 语句体2;
        }
    
    //实例
    if (a % 2 == 0) {
        System.out.println("a是偶数");
    } else {
        System.out.println("a是奇数");
    }
    

    执行流程图:


    image.png

    代码:

    package Java_study;
    
    public class if2 {
        public static void main(String[] args) {
            
            System.out.println("开始");
            //定义一个变量
            int a = 100;
            //重新给a赋值
            a = 99;
            
            // a %2 = 1 关系表达式结果为false 执行语句体2
            if (a % 2 == 0) {
                //语句体1
                System.out.println("a是偶数");
            } else {
                // [执行]语句体2
                System.out.println("a是奇数");
            }
            System.out.println("结束");
        
        }
    
    }
    
    

    测试记录:

    开始
    a是奇数
    结束
    

    3.1.3 第三种格式

    执行流程:

    1. 首先判断关系表达式1看其结果是true还是false
      1)如果是true就执行语句体1
      2)如果是false就继续判断关系表达式2看其结果是true还是false
      3)如果是true就执行语句体2
      4)如果是false就继续判断关系表达式…看其结果是true还是false
      5)…(按顺序结构依次判断关系表达式)…
      6)如果以上表达式都为false,就执行语句体n+1

    选择结构 if语句第三种格式:

    if(关系表达式1) {
                 语句体1;
        }else  if (关系表达式2) {
                 语句体2;
        }else  if (关系表达式3) {
                 语句体3;
        …
        else {
                 语句体n+1;
        }
        
    //实例
    if (x >= 3) {
       y = 2 * x + 1;
       // x=-5不满足表达式
    } else if (x >= -1 && x < 3) {
       y = 2 * x;
       // x=-5满足条件 x<-1
    } else if (x < -1) {
       //执行语句体:y = 2*(-5)-1 = -11
       y = 2 * x - 1;
    }else{
       y = 0;
    }   
    
    

    执行流程图:


    image.png

    代码:

    package Java_study;
    
    public class if3 {
        public static void main(String[] args) {
            System.out.println("开始");
            
            //根据给定的x值,计算出y的值
            int x = 5;
            x = 0;
            x = -5;
            
            //定义变量y
            int y;
            //x = -5不满足表达式x>= 3
            if (x >= 3) {
                y = 2 * x + 1;
                // x=-5 不满足表达式
            } else if (x >= -1 && x < 3) {
                y = 2 * x;
                // x = -5不满足表达式
            } else if (x < -1) {
                //执行预聚体: y = 2*(-5)-1 = -11
                y = 2* x -1;
            } else {
                y = 0;
            }
            System.out.println("y:" + y);
            System.out.println("结束");
        }
    
    }
    
    

    测试记录:

    开始
    y:-11
    结束
    

    3.2 switch语句

    switch选择结构语法:

    1. 表达式的取值:byte、short、int、char
      1)JDK5以后可以是枚举值
      2)JDK7以后可以是String
    2. case后面跟的是要和表达式进行比较的值
    3. 语句体部分可以是一条或多条语句
    4. break表示中断,结束的意思,可以结束switch语句
    5. default语句表示所有情况都不匹配的时候,就执行该处的内容,和if语句的else相似。

    执行流程:

    1. 计算出表达式的值
    2. 和case依次比较,一旦有对应的值,就会执行相应的语句,在执行的过程中,遇到break就会结束。
    3. 如果所有的case都和表达式的值不匹配,就会执行default语句体部分,然后程序结束掉。

    选择结构 switch语句格式:

    switch(表达式) {
            case 值1:
            语句体1;
                break;
            case 值2:
                语句体2;
                break;
            case 值3:
                语句体3;
                break;
            ...
            default:
                语句体n+1;
                break;
    }
    
    //实例
    switch (weekDay) {
         case 1:
             System.out.println("星期一");
             break;
         case 2:
             System.out.println("星期二");
             break;
         default:
             System.out.println("其他");
             break;
    }
    
    //case穿透写法
    switch (weekDay) {
         case 1:
         case 2:
         case 3:
         case 4:
         case 5:
             System.out.println("工作日");
             break;
         case 6:  
         case 7:
             System.out.println("休息日");
             break;
         default:
             System.out.println("日期错误");
             break;
    }
    

    执行流程图:


    image.png

    代码:

    package Java_study;
    import java.util.Scanner;
    
    public class switch1 {
        public static void main(String[] args) {
            // 创建键盘输入数据
            Scanner sc = new Scanner(System.in);
            
            // 给出提示
            System.out.println("请输入一个整数(1-7):");
            int weekDay = sc.nextInt();
            
            // 用switch语句实现判断
            switch (weekDay) {
            case 1:
                System.out.println("星期一");
                break;
            case 2:
                System.out.println("星期二");
                break;
            case 3:
                System.out.println("星期三");
                break;
            case 4:
                System.out.println("星期四");
                break;
            case 5:
                System.out.println("星期五");
                break;
            case 6:
                System.out.println("星期六");
                break;
            case 7:
                System.out.println("星期日");
                break;
            default:
                System.out.println("你输入的数据有误");
                break;
            }
        }
    
    }
    

    测试记录:

    请输入一个整数(1-7):
    2
    星期二
    
    

    相关文章

      网友评论

          本文标题:Java基础系列8-流程语句之顺序及选择结构

          本文链接:https://www.haomeiwen.com/subject/enwyyltx.html