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

x33g5p2x  于2021-12-18 转载在 其他  
字(3.7k)|赞(0)|评价(0)|浏览(480)

一.流程语句概述

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

流程控制语句分类:

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

二. 顺序结构语句

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

顺序结构流程图:

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

3.1 if选择结构语句

3.1.1 第一种格式

if语句执行流程:

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

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

  1. if (关系表达式) {
  2. 语句体;
  3. }
  4. //实例
  5. if (a == b) {
  6. System.out.println("a等于b");
  7. }
  8. //或者
  9. if (关系表达式) 语句体;
  10. //实例
  11. if (a == b) System.out.println("a等于b");

执行流程图:

代码:

  1. package Java_study;
  2. public class if1 {
  3. public static void main(String[] args) {
  4. // 开始
  5. System.out.println("开始");
  6. // 定义两个int类型的变量
  7. int a = 10;
  8. int b = 20;
  9. //判断两个变量是否相等
  10. //10 == 20 => false => 不执行语句体
  11. if (a == b) {
  12. //未执行此预聚体
  13. System.out.println("a等于b");
  14. }
  15. //定义变量
  16. int c = 10;
  17. // 10 == 10 => true => 执行语句体
  18. if (a ==c) {
  19. //a 等于 c
  20. System.out.println("a等于c");
  21. }
  22. //结束
  23. System.out.println("结束");
  24. }
  25. }

测试记录:

  1. 开始
  2. a等于c
  3. 结束

3.1.2 第二种格式

if语句执行流程:

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

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

  1. if(关系表达式) {
  2. 语句体1;
  3. }else {
  4. 语句体2;
  5. }
  6. //实例
  7. if (a % 2 == 0) {
  8. System.out.println("a是偶数");
  9. } else {
  10. System.out.println("a是奇数");
  11. }

执行流程图:

代码:

  1. package Java_study;
  2. public class if2 {
  3. public static void main(String[] args) {
  4. System.out.println("开始");
  5. //定义一个变量
  6. int a = 100;
  7. //重新给a赋值
  8. a = 99;
  9. // a %2 = 1 关系表达式结果为false 执行语句体2
  10. if (a % 2 == 0) {
  11. //语句体1
  12. System.out.println("a是偶数");
  13. } else {
  14. // [执行]语句体2
  15. System.out.println("a是奇数");
  16. }
  17. System.out.println("结束");
  18. }
  19. }

测试记录:

  1. 开始
  2. a是奇数
  3. 结束

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语句第三种格式:

  1. if(关系表达式1) {
  2. 语句体1;
  3. }else if (关系表达式2) {
  4. 语句体2;
  5. }else if (关系表达式3) {
  6. 语句体3;
  7. else {
  8. 语句体n+1;
  9. }
  10. //实例
  11. if (x >= 3) {
  12. y = 2 * x + 1;
  13. // x=-5不满足表达式
  14. } else if (x >= -1 && x < 3) {
  15. y = 2 * x;
  16. // x=-5满足条件 x<-1
  17. } else if (x < -1) {
  18. //执行语句体:y = 2*(-5)-1 = -11
  19. y = 2 * x - 1;
  20. }else{
  21. y = 0;
  22. }

执行流程图:

代码:

  1. package Java_study;
  2. public class if3 {
  3. public static void main(String[] args) {
  4. System.out.println("开始");
  5. //根据给定的x值,计算出y的值
  6. int x = 5;
  7. x = 0;
  8. x = -5;
  9. //定义变量y
  10. int y;
  11. //x = -5不满足表达式x>= 3
  12. if (x >= 3) {
  13. y = 2 * x + 1;
  14. // x=-5 不满足表达式
  15. } else if (x >= -1 && x < 3) {
  16. y = 2 * x;
  17. // x = -5不满足表达式
  18. } else if (x < -1) {
  19. //执行预聚体: y = 2*(-5)-1 = -11
  20. y = 2* x -1;
  21. } else {
  22. y = 0;
  23. }
  24. System.out.println("y:" + y);
  25. System.out.println("结束");
  26. }
  27. }

测试记录:

  1. 开始
  2. y:-11
  3. 结束

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语句格式:

  1. switch(表达式) {
  2. case 1:
  3. 语句体1;
  4. break;
  5. case 2:
  6. 语句体2;
  7. break;
  8. case 3:
  9. 语句体3;
  10. break;
  11. ...
  12. default:
  13. 语句体n+1;
  14. break;
  15. }
  16. //实例
  17. switch (weekDay) {
  18. case 1:
  19. System.out.println("星期一");
  20. break;
  21. case 2:
  22. System.out.println("星期二");
  23. break;
  24. default:
  25. System.out.println("其他");
  26. break;
  27. }
  28. //case穿透写法
  29. switch (weekDay) {
  30. case 1:
  31. case 2:
  32. case 3:
  33. case 4:
  34. case 5:
  35. System.out.println("工作日");
  36. break;
  37. case 6:
  38. case 7:
  39. System.out.println("休息日");
  40. break;
  41. default:
  42. System.out.println("日期错误");
  43. break;
  44. }

执行流程图:

代码:

  1. package Java_study;
  2. import java.util.Scanner;
  3. public class switch1 {
  4. public static void main(String[] args) {
  5. // 创建键盘输入数据
  6. Scanner sc = new Scanner(System.in);
  7. // 给出提示
  8. System.out.println("请输入一个整数(1-7):");
  9. int weekDay = sc.nextInt();
  10. // 用switch语句实现判断
  11. switch (weekDay) {
  12. case 1:
  13. System.out.println("星期一");
  14. break;
  15. case 2:
  16. System.out.println("星期二");
  17. break;
  18. case 3:
  19. System.out.println("星期三");
  20. break;
  21. case 4:
  22. System.out.println("星期四");
  23. break;
  24. case 5:
  25. System.out.println("星期五");
  26. break;
  27. case 6:
  28. System.out.println("星期六");
  29. break;
  30. case 7:
  31. System.out.println("星期日");
  32. break;
  33. default:
  34. System.out.println("你输入的数据有误");
  35. break;
  36. }
  37. }
  38. }

测试记录:

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

相关文章