提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


文章目录

  • 前言
  • 1、Java选择结构--if选择结构?
  • 单分支if语句
  • 双分支if语句
  • 多分支if语句
  • 嵌套if控制语句
  • 2、Java选择结构--if选择结构?
  • switch语句
  • switch与多重if的异同点



前言

在Java中有3种流程控制结构:顺序结构、选择结构、循环结构。
今天我们就学习一下Java中的选择结构;
选择结构:选择结构是根据条件判断的结果来选择执行不同的代码。选择结构可以细分为单分支结构、双分支结构和多分支结构。Java提供了if控制语句和switch语句来实现选择结构。

1、Java选择结构–if选择结构?

单分支if语句

语法格式:
if(条件){
语句
}
执行规律:
1)对条件的结果进行判断。
2)如果条件的结果为true,执行大括号里的语句。
3)如果条件的结果为false,跳过大括号里的语句,执行if结构后面的语句。
注意事项:
1)条件的结果只能是布尔类型的值
2)如果条件后大括号中的语句只有一句,大括号可以省略不写,但建议写上。

import java.util.Scanner;
public class Test {

	public static void main(String[] args) {
		/*
		 * 如果张浩Java考试成绩大于90分,老师就奖励他一个iPhone14
		 * 否则老师就罚他蹲马步
		 */
		Scanner sc=new Scanner(System.in)
		System.out.println("请输入你的考试成绩");
		double javaScore=sc.nextDouble();
		if(javaScore>90){
			System.out.println("老师就奖励他一个iPhone14");
		}		
		if(javaScore<=90){
			System.out.println("老师就罚他蹲马步");		
		System.out.println("程序执行完毕");
	}
}

双分支if语句

语法格式:
if(条件){
语句1
}else{
语句2
}
执行规律:
1)对条件的结果进行判断。
2)如果条件的结果为true,执行语句1。
3)如果条件的结果为false,执行语句2。
注意事项:
1)else子句不能单独使用,它必须是if语句的一部分,与最近的if语句配对使用

public class Test {

	public static void main(String[] args) {
		/*
		 * 如果张浩Java考试成绩大于90分,老师就奖励他一个iPhone14
		 * 否则老师就罚他蹲马步	
		 */		
		double javaScore =99;	
		if(javaScore>90){
			System.out.println("老师就奖励他一个iPhone14");
		}else{
			System.out.println("老师就罚他蹲马步");
		}		
		System.out.println("程序执行完毕");
	}
}

多分支if语句

语法格式:
if(条件1){
语句1
}else if(条件2){
语句2
}else if(条件3){
语句3
}

}else{
语句n
}
执行规律:
1)对条件1的结果进行判断。
2)如果条件1的结果为true,执行语句1;如果条件1的结果为false,则判断条件2的结果。
3)如果条件2的结果为true,执行语句2;如果条件2的结果为false,则判断条件3的结果。
4)如果条件3…
5)如果所有条件都为false,则执行else里的语句n。
注意事项:
1)不论多分支if语句中有多少个条件,只会执行符合条件的一个,如果没有符合条件的,则执行else子句中的语句。
2)else if语句可以有多个。
3)else语句可以省略。
4)多分支if语句的各个条件排列是有顺序的,从上到下条件越来越宽松。
5)如果if语句或else子句中要执行的语句超过一条,则必须将这些语句用大括号括起来。

public class Test {
	public static void main(String[] args) {
		/*
		 * 根据Java成绩划分不同的等级
		 * 
		 * >=90 A
		 * >=80 B
		 * >=70 C
		 * >=60 D
		 * <60 E
		 */
		
		double javaScore = 99;
		
		if(javaScore>=90){
			System.out.println("A");
		}else if(javaScore>=80){
			System.out.println("B");
		}else if(javaScore>=70){
			System.out.println("C");
		}else if(javaScore>=60){
			System.out.println("D");
		}else{
			System.out.println("E");
		}
		
		System.out.println("继续努力");
	}
}

嵌套if控制语句

语法格式:
if(条件1){
if(条件2){
语句1
}else{
语句2
}
}else{
if(条件3){
语句3
}else{
语句4
}
}
执行规律:
1)对条件1的结果进行判断。
2)如果条件1的结果为true,再对条件2的结果进行判断。如果条件2的结果为true,则执行语句1;否则,执行语句2。
3)如果条件1的结果为false,再对条件3的结果进行判断。如果条件3的结果为true,则执行语句3;否则,执行语句4。
注意事项:
1)else子句不能单独使用,它必须是if语句的一部分,与最近的if语句配对使用

import java.util.Scanner;
public class Test{
	public static void main(String[] args) {
		/*
		 * 学校举行运动会,百米赛跑跑入10 秒内的学生有资格进决赛,根据性别分别进入男子组和女子组
		 */

		// equals():比较两个字符串内容是否相同,内容相同,返回true,内容不相同返回false
		Scanner sc = new Scanner(System.in);
		// 输入跑步成绩
		System.out.println("请输入你的百米赛跑成绩:");
		double runScore = sc.nextDouble();
		// 根据你输入的成绩判断你是否能进入决赛
		if (runScore < 10) {
			System.out.println("恭喜你,进入决赛");
			// 进入决赛后,根据性别进行分组
			System.out.println("请输入你的性别:");
			String gender = sc.next();
			if (gender.equals("男")) {
				System.out.println("进入男子决赛组");
			} else if (gender.equals("女")) {
				System.out.println("进入女子决赛组");
			} else {
				System.out.println("性别输入错误");
			}
		} else {
			System.out.println("很遗憾,没能进入决赛,继续努力");
		}	
		sc.close();
	}
}

2、Java选择结构–if选择结构?

switch语句

语法格式:
switch(表达式){
case 常量 1:
语句;
break;
case 常量 2:
语句;
break;

default:
语句;
break;
}
–>switch、case、break、default是Java关键字;
–>JDK1.7后,switch后的表达式可以是int、short、byte、char、枚举类型、String类型表达式。
–>case用于与表达式进行匹配。
–>break用于终止后续语句的执行。
–>default是可选的,当其他条件都不匹配时执行default。
执行规律:
1)计算switch后表达式的值。
2)将计算结果从上至下依次与case后的常量值比较。
3)如果相等就执行该常量后的代码块,遇到break语句就结束。
4)如果与任何一个case后的常量值都不匹配,就执行default中的语句。
注意事项:
1)如果case后没有break语句,程序将继续向下执行,直到遇到break语句或switch语句结束----“case穿透”。
2)case常量值不能相同。
3)default语句可以在任意位置书写,但一般写在switch结构的末尾。也可以省略不写。

public class Test {
	public static void main(String[] args) {
		/*
		 * 韩嫣参加计算机编程大赛
		 * 如果第一名,参加麻省理工大学组织的1个月夏令营
		 * 如果第二名,奖励惠普笔记本电脑一部
		 * 如果第三名,奖励移动硬盘一个
		 * 否则,不给任何奖励
		 */	
		int mingCi = 2;	
		switch(mingCi){
			case 1:
				System.out.println("参加麻省理工大学组织的1个月夏令营");
				break;
			case 2:
				System.out.println("奖励惠普笔记本电脑一部");
				break;	
			case 3:
				System.out.println("奖励移动硬盘一个");
				break;	
			default:
				System.out.println("没有奖励");
				break;
		}
		
		System.out.println("继续努力");			
	}
}

switch与多重if的异同点

相同点:
都是用来处理多分支条件的结构;
不同点:
switch选择结构只能处理等值条件判断的情况;
多重if选择结构既能处理某个变量处于某个连续区间时的情况,也能处理等值条件判断的情。