共计 3188 个字符,预计需要花费 8 分钟才能阅读完成。
1、if 语句
1.1、单条件判断 -(if)
满足 if 条件即执行,不满足不执行。
1.1.1、if 语句的语法格式
if (关系表达式){
代码块
}
1.1.2、执行流程
首先判断关系表达式看其结果是 true 还是 false,如果是 true 就执行语句体,如果是 false 就不执行语句体
1.1.3、流程图
1.1.4、案例
如年龄大于 18 岁可以注册婚恋网站
/*
选择结构 if 语句的第一种格式, 有可能一句话都不打印
格式:
if(条件语句){
code;
...
}
执行步骤:
首先判断条件语句是否成立
true: 执行 if{}中的代码
false: 不执行 if{}中的代码
*/
import java.util.Scanner;
public class IfDemo01{public static void main(String[] args){Scanner sc = new Scanner(System.in);
System.out.println("请输入您的年龄:");
int age = sc.nextInt();
if(age >= 18){System.out.println("年龄大于等于 18 岁, 可以注册百合网, 美女在等着你");
}
if(age < 18){System.out.println("年龄小于 18 岁, 不可以注册百合网, 注册会员, 可以放宽年龄限制");
}
}
}
运行结果:
1.2、互斥条件判断 -(if-else-)
满足条件执行 if 语句体,不满足执行 else 语句体。
1.2.1、if-else- 语句语法格式
if(关系表达式) {
语句体 1;
}else {
语句体 2;
}
1.2.2、执行流程
首先判断关系表达式看其结果是 true 还是 false,如果是 true 就执行语句体 1,如果是 false 就执行语句体 2
1.2.3、流程图
1.2.4、案例
如年龄大于 18 岁可以注册婚恋网站,小于 18 岁不可以注册。
/*
选择结构 if 语句的第二种格式: 总会打印一句话
格式:
if(条件语句){
执行语句 1;
...
}else{
执行语句 2;
...
}
执行流程:
首先判断条件语句是否成立
true: 执行 if{}中的执行语句 1
false: 执行 else{}中的执行语句 2
*/
import java.util.Scanner;
public class IfDemo02{public static void main(String[] args){Scanner sc = new Scanner(System.in);
System.out.println("请输入您的年龄:");
int age = sc.nextInt();
if(age >= 18){System.out.println("年龄大于等于 18 岁, 可以注册百合网, 美女在等着你");
}else{System.out.println("年龄小于 18 岁, 不可以注册百合网, 注册会员, 可以放宽年龄限制");
}
}
}
1.3、多条件判断(if-elseif-else)
在多个条件中选择满足条件的 if 语句体执行。
1.3.1、if-elseif-else- 语句的语法格式
if (判断条件 1) {
执行语句 1
} else if (判断条件 2) {
执行语句 2
}
…
else if (判断条件 n) {
执行语句 n
} else {
执行语句 n +1
}
1.3.2、执行流程
首先判断关系表达式 1 看其结果是 true 还是 false,如果是 true 就执行语句体 1,如果是 false 就继续判断关系表达式 2 看其结果是 true 还是 false,如果是 true 就执行语句体 2,如果是 false 就继续判断关系表达式…看其结果是 true 还是 false
…,
如果没有任何关系表达式为 true,就执行语句体 n +1。
1.3.3、流程图
1.3.4、案例
例如,对一个学生的考试成绩进行等级的划分;
如果分数大于等于 90 分,小于等于 100 分等级为优;如果分数大于等于 80 分,小于 90 分级为良;如果分数大于等于 70 分,小于 80 分级为中;如果分数大于等于 60 分,小于 70 分等级为及格;60 以下为不及格。
/*
选择结构 if 语句的第三种格式: 终究会打印一个结果
格式:
if(条件 1){条件 1 成立执行}else if(条件 2){条件 1 不成立, 条件 2 成立执行}
.....
else if(条件 n){条件 1, 条件 2... 都不成立, 条件 n 成立执行}else{所有条件都不满足, 执行}
需求: 根据成绩判断成绩等级
90-100 分: 优
80-90 分: 良
70-80 分: 中
60-70 分: 及格
0-60 分: 不及格
其它成绩: 非法成绩
变量的作用域: 在自己所在的 {} 内有效
*/
public class IfDemo03{public static void main(String[] args){
int score = 55;
if(score >=90 && score <=100){System.out.println("成绩是"+score+", 等级为优!");
}else if(score >=80 && score <90){System.out.println("成绩是"+score+", 等级为良!");
}else if(score >=70 && score <80){System.out.println("成绩是"+score+", 等级为中!");
}else if(score >=60 && score <70){System.out.println("成绩是"+score+", 等级为及格!");
}else if(score >=0 && score <60){System.out.println("成绩是"+score+", 等级为不及格!");
}else{System.out.println("成绩是"+score+", 非法成绩!");
}
}
}
运行结果:
1.4、多层条件判断(嵌套条件)(if-> if)
在复杂的业务逻辑中,可以使用多层的条件判断代码是否执行。
1.4.1、格式
if(第一层条件){
if(第二层条件){
真正运行逻辑
}
}
1.4.2、案例
如:60 分以下的同学不及格重考,60 分以上的同学不需要重考,这个区间又可以分为:优秀、良好、及格三个等级。
/*
多层 if 语句:if 语句嵌套
格式:
if(条件语句){if(条件语句){
code;
...
}
}
需求:
成绩 >= 60
打印成绩合格, 可以升级
90-100 分: 优
80-90 分: 良
70-80 分: 中
60-70 分: 及格
成 <60
打印成绩不及格, 需要补考
*/
import java.util.Scanner;
public class IfDemo04{public static void main(String[] args){Scanner sc = new Scanner(System.in);
System.out.println("请输入您的成绩:");
int score = sc.nextInt();
if(score >= 60 && score <=100){System.out.println("成绩合格, 可以升级");
if(score >=90 && score <=100){System.out.println("成绩是"+score+", 等级为优!");
}else if(score >=80 && score <90){System.out.println("成绩是"+score+", 等级为良!");
}else if(score >=70 && score <80){System.out.println("成绩是"+score+", 等级为中!");
}else{System.out.println("成绩是"+score+", 等级为及格!");
}
}else if(score >=0 && score < 60){System.out.println("成绩不及格, 需要补考");
}else{System.out.println("非法成绩");
}
System.out.println("程序结束");
}
}
运行结果: