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

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

一.流程语句概述

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

流程控制语句分类:

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

二. 顺序结构语句

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

顺序结构流程图:

三. 选择结构语句 【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");

执行流程图:

代码:

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是奇数");
}

执行流程图:

代码:

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;
}

执行流程图:

代码:

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;
}

执行流程图:

代码:

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
星期二

相关文章