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

2021-08-11  本文已影响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
星期二

上一篇 下一篇

猜你喜欢

热点阅读