Java基础(八)---- if判断语句
学习本节之前,先了解两个小知识
1.什么是 流程控制 ?
在一个程序执行过程中,各条语句执行顺序对程序的结果是有直接影响的,也就是说,程序的流程对程序的结果有直接影响。所以我们必须清楚每条语句的执行流程。而且,很多时候我们
通过控制语句的执行顺序来实现要完成的功能
。
2.什么是 顺序结构?
根据代码编写顺序,
从上往下运行
。
一、if语句
1.if语句格式
//格式
if(关系表达式) {//关系表达式应为boolean值
语句体;
}
//代码实战
int num = 10;
if(num >= 10) {
System.out.println("num大于等于10。");
//打印结果:num大于等于10。
}
2.if语句执行流程
首先判断表达式看其结果是true还是false
如果是true就执行语句体
如果是false就不执行语句体
//代码实战
int result = 60;
if(result >= 60) {
System.out.println("成绩及格!");
//打印结果:成绩及格!。
}
二、if…else语句
1.if…else语句格式
//格式
if(关系表达式) {//关系表达式应为boolean值
语句体1;
} else {
语句体2;
}
//代码实战
int num = 3;
if(num > 5) {
System.out.println("num大于5。");
} else {
System.out.println("num小于等于5。");
//打印结果为:num小于等于5。
}
2.if…else语句执行流程
首先判断表达式看其结果是true还是false
如果是 true 就执行语句体 1
如果是 false 就执行语句体 2
//代码实战
int result = 60;//及格标准
int num = 80;//实际成绩
if(result >= a) {
System.out.println("成绩及格!");
//打印结果:成绩及格!。
} else {
System.out.println("成绩不及格!");
}
三、if…else…if…else语句
1.if…else…if…else语句格式
//格式
if(关系表达式1) {//关系表达式应为boolean值
语句体1;
} else if(关系表达式2){
语句体2;
}
...
} else if(关系表达式n){
语句体n;
} else {
语句体n+1;
}
2.if…else…if…else语句执行流程
首先判断表达式 1 看其结果是 true 还是 false
如果是true就执行语句体 1
如果是false就继续执行关系表达式 2,看其结果是 true 还是 false
如果是true就执行语句体 2
……
如果是false就继续判断关系表达式 n,看其结果是 true 还是 false
代码实战 — 简单的成绩等级判断
实现思路:
1.划分成绩等级
分为优秀、良好、及格和不及格并定义合法的成绩区间[0~100]
2.使用逻辑运算符“&&”确定对应等级的成绩区间
例如a > 10 && a < 30,就可以代表a在0~30之间
3.完善代码逻辑思路
当输入数据超过合法区间,打印语句进行提示
int num = 90;//定义成绩数值
if(num <= 100 && num >= 80){
System.out.println("成绩优秀");
} else if(){
} if(num < 80 && num >= 70){
System.out.println("成绩良好");
} else if(num < 70 && num >= 60){
System.out.println("成绩及格");
} else if(num < 60 && num >= 0){
System.out.println("成绩不及格!");
} else {
System.out.println("请输入正确的数据大小!");
}
四、if语句与三元运算符的转换
1.复习三元运算符
1.格式
数据类型 变量名称 = 条件判断 ? 表达式A : 表达式B;
2.结果解读
如果成立为true,那么将表达式A的值赋值给左侧的变量
如果不成立为false,那么将表达式B的值赋值给左侧的变量
2.相互转化
对于三元运算符,如果表达式成立,则把冒号前的数据进行赋值,如果不成立,则将冒号后的数据进行赋值。
对于if判断语句,我们可以将三元运算符的条件判断作为两部分处理(true,false)。
案例分析:
使用三元运算符和if判断语句打印两个数的最大值
//定义两个变量
int a = 10 ;
int b = 20 ;
//三元运算符输出最大值
int max = a > b ? a: b;
System.out.println(max);
//if判断语句输出最大值
if(a > b) {
System.out.println(a);
} else {
System.out.println(b);
}