1) 为什么需要if条件结构
a) 我们使用关系运算符进行比较的目的往往不仅仅是为了得到比较的结果,还希望通过比较的结果来指导或决定后面的一些行为。比如下面这个问题:
b) 问题:如果懒羊羊的Java考试成绩大于90分,村长就奖励他休息三天
c) 使用if条件结构可以解决以上问题
d) if条件结构作用:是根据条件判断之后再做处理,也就是根据条件判断的结果来改变程序执行的顺序。
2) 基本的if条件结构
a) 语法:
b) 特点:先判断后执行(在条件成立的情况下执行相应语句)
c) 代码示例:
public class HelloWorld02 {
public static void main(String[] args) {
int score = 95; // 懒羊羊的Java成绩
if (score > 90) { // 判断是否大于90分
System.out.print("村长说:不错,你可以休息三天!");
}
}
}
3) 逻辑运算符
a) 懒羊羊不仅仅学习了JAVA,还学习了音乐,如果他的JAVA成绩大于90分,并且音乐成绩大于80分,村长才就奖励他;或者JAVA成绩100分,并且音乐成绩大于70,村长也奖励他。我们怎么实现这个功能呢?
b) 我们可以使用逻辑运算符
c) 作用:用于连接条件表达式
d) 代码示例:
1. 条件编写:
(score1 > 90 && score2 > 80) || (score1 == 100 && score2 > 70)
2. 运算符的优先级:
a) 最高的优先级:小括号,即( )
b) 最低的优先级:赋值运算符,即 =
c) 优先级顺序:!> 算术运算符 > 比较运算符 > && > ||
3. 多使用小括号( )控制优先级
4. 完整代码:
public class HelloWorld03 {
public static void main(String[] args) {
int score1 = 100; // 懒羊羊的Java成绩
int score2 = 72; // 懒羊羊的音乐成绩
if ((score1 > 90 && score2 > 80) ||
(score1 == 100 && score2 > 70)) {
System.out.println("村长说:不错,你可以休息三天");
}
}
}
e) 总结:
1. if条件结构是先判断再执行
2. 逻辑运算符可以连接多个条件表达式
4) if-else条件结构
a) 上面的示例只对条件成立时进行了处理,那么当条件不成立时, 如果我们也想进一步处理,比如懒羊羊的JAVA成绩没有在90分以上,村长要罚他。用我们刚才学习的知识来解决这个问题:
1. 使用两个基本if条件结构
代码:
if ( score > 90 ) {
System.out.println("村长说:不错,你可以休息三天!");
}
if ( score <= 90 ){
System.out.println("村长说:大懒虫,去抓灰太狼吧!");
}
b) 还可以使用if-else条件结构实现
c) 语法:
d) 使用if-else条件结构解决上面这个问题
public class HelloWorld04 {
public static void main(String[] args) {
int score = 89; // 懒羊羊的Java成绩
if (score > 90) {
System.out.println("村长说:不错,你可以休息三天!");
} else {
System.out.println("村长说:大懒虫,去抓灰太狼吧!");
}
}
}
这段代码比用两个if条件结果要简洁:只有一个判断。不需要判断两次。
输出结果:
5) 小结1
a) 说出已学过的数据类型有哪些?
1. int、double、char、boolean、String
b) 举例说明已学过的运算符有哪些?
1. 赋值运算符、算术运算符、关系运算符、逻辑运算符
c) if和if-else条件结构执行的顺序是什么?
1. if:如果条件表达式成立,执行语句
2. if-else:如果条件表达式成立,执行语句1,如果不成立,执行语句2
d) 示例:
1. 小布什买了一筐鸡蛋,如果坏鸡蛋少于5个,他就吃掉,否则他就去退货
public class XiaoJie1_1 {
public static void main(String[] args) {
int badegg = 6;
if (badegg < 5) {
System.out.println("坏蛋少于5个,吃掉其余的!");
} else {
System.out.println("坏蛋大于等于5个,全部退掉!");
}
}
}
2. 用户有两个整数a、b,如果a能被b整除或a加b大于100,则输出a,否则输出b
public class XiaoJie1_2 {
public static void main(String[] args) {
int a = 40;
int b = 70;
if (a % b == 0 || (a + b) > 100) {
System.out.println("a的值是:" + a);
} else {
System.out.println("b的值是:" + b);
}
}
}
6) 多重if条件结构
a) 为了方便对学员成绩进行管理,我们要把学员成绩按照分数进行等级划分
b) 问题:对学员的结业考试成绩评测
1. 成绩 >= 90 :优秀
2. 成绩 >= 80 :良好
3. 成绩 >= 60 :中等
4. 成绩 < 60 :差
c) 使用多重if结构解决以上问题
d) 多重if结构就是在else部分中还包含其他if块
e) 语法:
f) 使用多重if结构解决问题
int score = 70; //考试成绩
if ( score >= 90 ) {
System.out.println("优秀");
} else if (score >= 80) {
System.out.println("良好");
} else if (score >= 70) {
System.out.println("中等");
} else if (score >= 60) {
System.out.println(“及格");
} else {
System.out.println("差");
}
输出结果:
g) 总结:
1. 多重if结构用来解决多个条件分别存在的情况,不是并列的条件
7) 三元运算符
a) 语法:
x ? y : z ;
其中y和z的数据类型必须是相互兼容的
如都是int(整型)或String(字符串类型)
b) 其中x为boolean类型表达式,先计算x的值,若为true,则整个表达式的结果为表达式y的值,否则为表达式z的值。
c) 三元条件运算符相当于简单的if…else…语句
d) 示例:
int score = 80;
int x = 100;
String type = score <60 ? "不及格":"及格"
int flag = x > 0 ? 1 : ( x == 0 ? 0 : -1 );
double num = 3 > 5 ? 9.9 : 8;
最后一条语句就相当于:
double num;
if ( 3 > 5 ) {
num = 9.9 ;
} else {
num = 8 ;
}
e) 案例:对学生的考试成绩进行判断
1. 成绩>=60 :及格
2. 成绩<60 :不及格
代码:
public class HelloWorld12 {
public static void main(String[] args) {
int score = 69;
String result = score < 60 ? "不及格" : "及格";
System.out.println("张三的成绩是:" + result);
}
}