Day03_分支结构及嵌套

一. 基本if选择结构

语法:

​ if(布尔表达式) {

​ // 代码块

​ }

执行流程:

  1. 对布尔表达式进行判断
  2. 结果为true,则先执行代码块,再执行后续代码。
  3. 结果为false,则跳过代码块,直接执行后续代码。
int score = 100;
if (score > 90) {
	System.out.println("Win!");
}

二. if-else选择结构

语法:

​ if(布尔表达式) {

​ // 代码块1

​ } else {

​ // 代码块2

​ }

执行流程:

  1. 对布尔表达式进行判断
  2. 结果为true,则先执行代码块1,再退出整个结构,执行后续代码。
  3. 结果为false,则先执行代码块2,再退出整个结构,执行后续代码。
int score = 100;
if (score > 90) {
	System.out.println("Win!");
} else {
	System.out.println("Game Over.");
}

三. 多重if选择结构

语法:

if(布尔表达式1) {

​ // 代码块1

​ }else if (布尔表达式2) {

​ // 代码块2

​ }else if (布尔表达式3) {

​ // 代码块3

​ }else{

​ // 代码块4

​ }

执行流程:

  1. 表达式1为true,则执行代码块1,再退出整个结构。
  2. 表达式2为true,则执行代码块2,再退出整个结构。
  3. 表达式3为true,则执行代码块3,再退出整个结构。
  4. 以上均为false,则执行代码块4,再退出整个结构。

【注】: 相互排斥,有一个为true,其他均不执行。

【注】: 阿里编码规范要求,多重if结构必须以else结尾。

【注】: 适用于区间判断,但要保证条件顺序

int score = 69;
		
if (score == 100) {
	System.out.println("完美");
} else if (score > 84) {
	System.out.println("优秀");
} else if (score > 69) {
	System.out.println("良好");
} else if (score > 59) {
	System.out.println("及格");
} else {
	System.out.println("菜");
}

四. 嵌套if选择结构

语法:

​ if(外层表达式) {

​ if (内层表达式) {

​ // 内层代码块1

​ }else{

​ // 内层代码块2

​ }

​ }else{

​ // 外层代码块

​ }

执行流程:

​ 当外层条件满足时,再判断内层条件。

【注】: 一个选择结构中,可嵌套另一个选择结构。嵌套格式正确的情况下,支持任意组合。

Scanner input = new Scanner(System.in);
int year = input.nextInt();
if (year % 4 == 0) {
	if (year % 400 == 0) {
		System.out.println("是闰年");
	} else if(year % 100 == 0){
		System.out.println("是平年");
	} else {
		System.out.println("是闰年");
	}
} else {
	System.out.println("是平年");
}

五. switch分支结构

语法:

​ switch(变量/表达式) {

​ case 值1:

​ 逻辑代码1;

​ case 值2:

​ 逻辑代码2;

​ // …

​ case 值n:

​ 逻辑代码n;

​ default:

​ 未满足时的逻辑代码;

​ }

可判断的类型:

byte, short, int, char, String(JDK7+)

执行流程:

  1. 如果变量中的值等于值1,则执行逻辑代码1。

    1. 如果变量中的值等于值2,则执行逻辑代码2。
    2. 如果变量中的值等于值n,则执行逻辑代码n。
    3. 如果变量中的值没有匹配到case值时,则执行default中的逻辑代码。
    4. 当匹配的case执行后,不会自动退出整个结构,而是继续向下执行

【注】: switch结构可搭配break关键字使用,跳出当前代码块,以达到防止穿透的目的。

【注】: 适用于等值判断

Scanner input = new Scanner(System.in);
int exp = input.nextInt();
System.out.println();
switch (exp){
	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("请输入1~7");
		break ;

六. 局部变量

​ 在Java语言里,根据定义变量位置的不同,可以将变量分成:成员变量(存在于heap(堆区))中,和类一起创建),类变量(存在于method(方法区))和局部变量(存在于stack (栈区))中,当方法执行完成,让出内存,让其他方法来使用内存)。详见【附】

局部变量概念:

​ 声明在方法内部的变量,必须先赋值再使用。

作用范围:

​ 定义行开始到所在的代码块结束。

【注】: 多个变量,在重合的作用范围,不可出现重名(命名冲突)。

猜你喜欢

转载自blog.csdn.net/qq_41612797/article/details/107689842