常听人说起,编程不就是if else吗?今天带着大家一起领略一下if的魅力!Follow Me!
加关注不迷路
内容提要
if是Java中最常见,也是最常用的流程控制语句。它有多种形式:
- if分支结构
- if else分支结构
- 多重if else分支结构
- 嵌套if else分支结构
if是Java控制结构中的最基础,它的语法格式:
if (布尔表达式) {
// 布尔表达式为true时,执行该代码块
}
在运算符章节我们讲过关系运算符和逻辑运算符可以表示true或者false,if中的布尔表达式通常就是关系运算符或者逻辑运算符的结果。
具体代码示例:
public class IfCondition {
public static void main(String []args) {
/*
* 大学在校生的年龄通常在18~25岁之间
*/
int age = 22;
if (age >= 18 && age <= 25) {
System.out.println("张三现在是一名大学生,他的年龄符合在校大学生的年龄段(18~25岁),他现在的年龄是" age);
}
}
}
if else分支结构
在if的基础演化出了if else,先来看一下它的语法格式:
if (布尔表达式) {
// 布尔表达式为true时,执行该代码块
} else {
// 布尔表达式为false时,执行该代码块
}
如何理解这种分支控制结构?这种结构的执行顺序:
- 如果(if)布尔表达式成立(true),执行if大括号里的代码块。
- 如果(if)布尔表达式不成立(false),执行else大括号里的代码块。
通俗理解是if成立就走,if中代码;否则,走else中代码。
具体代码示例:
public class IfCondition {
public static void main(String []args) {
/*
* 大学在校生的年龄通常在18~25岁之间
*/
int age = 50;
if (age >= 18 && age <= 25) {
System.out.println("张三现在是一名大学生,他的年龄符合在校大学生的年龄段(18~25岁),他现在的年龄是" age);
} else {
System.out.println("张三现在不是一名大学生,他的年龄不符合在校大学生的年龄段(18~25岁),他现在的年龄是" age);
}
}
}
多重if else分支结构
我们在现实生活中经常遇到一种选择问题,满足不同条件处理不同事件;如果这类选择问题就两种不同条件,那么,if else就够处理。但是,现实往往是多种选择,于是乎,衍生出了多重if else分支结构,它的语法格式:
if (布尔表达式1) {
// 布尔表达式1为true时,执行该代码块
} else if (布尔表达式2) {
// 布尔表达式1为false,并且布尔表达式2为true时,执行该代码块
} else if (布尔表达式3) {
// 布尔表达式1和2均为false,并且布尔表达式3为true时,执行该代码块
} else {
// 以上布尔表达式均为false时,执行该代码块
}
请注意,else if可以为n重。以上述三重if else为例,先来看一下其执行顺序:
- 如果(if)布尔表达式1成立,执行该if大括号中的代码块;否则,判断布尔表达式2。
- 如果(if)布尔表达式2成立,执行该if大括号中的代码块;否则,判断布尔表达式3。
- 如果(if)布尔表达式3成立,执行该if大括号中的代码块;否则,最后只能执行else大括号中代码块。
对于第n重else if分支代码想要执行的话,必须确保前面的n-1重if的布尔表达式结构均为false,并且第n重else if布尔表达式为true。
具体代码示例:
public class IfCondition {
public static void main(String []args) {
/*
* 试卷采用百分制,成绩判定规定:
* 90-100,成绩优秀
* 80-89,成绩良好
* 60-79,成绩合格
* 60分以下,成绩不合格
*/
System.out.println("试卷采用百分制,成绩判定规定:");
System.out.println("90-100,成绩优秀");
System.out.println("80-89,成绩良好");
System.out.println("60-79,成绩合格");
System.out.println("60分以下,成绩不合格");
/*
* 张三数学分数是95
*/
int math = 95;
if (math >=90 && math <= 100) {
System.out.println("张三的数学成绩是" math ",成绩优秀!");
} else if (math >= 80 && math < 89) {
System.out.println("张三的数学成绩是" math ",成绩良好!");
} else if (math >= 60 && math < 79) {
System.out.println("张三的数学成绩是" math ",成绩合格!");
} else {
System.out.println("张三的数学成绩是" math ",成绩不合格!");
}
/*
* 张三英语分数是83
*/
int eng = 83;
if (eng >=90 && eng <= 100) {
System.out.println("张三的英语成绩是" eng ",成绩优秀!");
} else if (eng >= 80 && eng < 89) {
System.out.println("张三的英语成绩是" eng ",成绩良好!");
} else if (eng >= 60 && eng < 79) {
System.out.println("张三的英语成绩是" eng ",成绩合格!");
} else {
System.out.println("张三的英语成绩是" eng ",成绩不合格!");
}
/*
* 张三语文分数是66
*/
int chn = 69;
if (chn >=90 && chn <= 100) {
System.out.println("张三的语文成绩是" chn ",成绩优秀!");
} else if (chn >= 80 && chn < 89) {
System.out.println("张三的语文成绩是" chn ",成绩良好!");
} else if (chn >= 60 && chn < 79) {
System.out.println("张三的语文成绩是" chn ",成绩合格!");
} else {
System.out.println("张三的语文成绩是" chn ",成绩不合格!");
}
/*
* 张三物理分数是66
*/
int phy = 59;
if (phy >=90 && phy <= 100) {
System.out.println("张三的物理成绩是" phy ",成绩优秀!");
} else if (phy >= 80 && phy < 89) {
System.out.println("张三的物理成绩是" phy ",成绩良好!");
} else if (phy >= 60 && phy < 79) {
System.out.println("张三的物理成绩是" phy ",成绩合格!");
} else {
System.out.println("张三的物理成绩是" phy ",成绩不合格!");
}
}
}
嵌套if else分支结构
既然有多重if else,那么有同学肯定会好奇是否能在if 或者else或者else if分支中写if或者if else分支呢?当然可以啦,这么多的if else是不是感到有点头晕呢?集中精神,跟着学,嵌套的语法格式:
/*
* 形式一:if分支中嵌套if或者if else分支
*/
if (布尔表达式1) {
// 布尔表达式1为true,执行该代码块
if (布尔表达式2) {
// 布尔表达式2为true,执行该代码块
} else {
// 布尔表达式2为false,执行该代码块
}
}
/*
* 形式二:if else分支中嵌套if或者if else分支
*/
if (布尔表达式1) {
// 布尔表达式1为true,执行该代码块
if (布尔表达式2) {
// 布尔表达式2为true,执行该代码块
} else {
// 布尔表达式2为false,执行该代码块
}
} else {
// 布尔表达式2为false,执行该代码块
if (布尔表达式3) {
// 布尔表达式3为true,执行该代码块
}
}
嵌套的if else分支执行顺序,是建立在上述几种类型之上,参照上述执行规则。
具体代码示例:
public class IfCondition {
public static void main(String []args) {
/*
* 奖学金判定规定:
* 百分制,数学成绩超过90分
* 并且英语成绩超过90分
* 二者缺一不可
*/
int math = 95;
int eng = 85;
if (math > 90) {
if (eng > 90) {
System.out.println("张三同学获得年度奖学金,他的数学成绩是" math ",他的英语成绩是" eng);
} else {
System.out.println("张三同学没有获得年度奖学金,他的英语成绩不满足评选条件,该课程成绩是" eng);
}
} else {
System.out.println("张三同学没有获得年度奖学金,他的数学成绩不满足评选条件,该课程成绩是" math);
}
}
}
总结
今天我们一起学习Java语言中的控制结构之一的if分支结构,它是我们常用的控制结构,大家要多加练习!加油,小伙伴们!
往期回顾