提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
- 前言
- 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选择结构既能处理某个变量处于某个连续区间时的情况,也能处理等值条件判断的情。