在实际生活中,我们经常做一些判断,如果是8:00点,去506教室上Java课,如果是14:00点,去509教室上思修课。Java中有些语句需要执行,有些语句不需要执行,这就需要对执行语句的条件做出判断,决定执行哪段语句。

一、if条件语句

1.1 if语句

if语句是指如果满足某种条件,就进行某种处理,其语法格式如下所示:
image.png
上述语法格式中,判断条件是一个布尔值,当值为true时,才会执行{}中的语句。
if语句的执行流程如下图所示:
image.png
【例1.1-1】
阅读下列程序,写出输出结果。
public class if_01{
public static void main(String[] args){
int x = 15;
if(x % 3 == 0){
x += 5;
}
System.out.println(“x=” + x);
}
}
【单步调试】
1、添加断点:断点,就是程序自动执行到断点处,不再执行,等待手动执行。
image.png
2、断点执行:点击下面图标,程序执行到断点位置就不再执行了。
image.png
image.png
3、单步(手动)执行程序:按下面图标或快捷键(F6)
image.png
image.png
4、继续单步执行程序
image.png
5、继续单步执行程序
image.png
注意:将鼠标移至变量上,可以看到变量的值。
image.png
6、结束调试:调试时获取了我们想要的信息,可以直接结束调试,点击下面图标或按快捷键(F8)
image.png

1.2 if…else语句

if…else语句是指如果满足某种条件,就进行某种处理,否则就进行另一种处理,其语法格式如下所示:
image.png
if…else语句的执行流程如下图所示:
image.png
【例1.2-1】
指定一个数,如果能被2整除,输出是一个偶数,否则就输出一个奇数。用单步调试程序。
public class if_02 {
public static void main(String[] args) {
int x = 13;
/
如果x能被2整除,x是一个偶数,否则是一个奇数
/
if(x % 2 == 0){
System.out.println(x + “是一个偶数”);
}else{
System.out.println(x + “是一个奇数”);
}
}
}
在Java中有一种特殊的运算叫做三元运算,它和if-else语句类似,语法如下:
image.png
三元运算通常用于对某个变量进行赋值,当判断条件成立时,运算结果为表达式1的值,否则结果为表达式2的值。
image.png
*【练习】

1、指定一个成绩,如果成绩大于等于60分,输出及格,否则输出不及格。
2、市出租车,起步价(3公里以内)为8元,超过3公里后按照每公里2元计算。要求根据路程计算费用。

解题思路:
(1) 指定路程
(2) 根据条件计算费用
(3) 输出费用。
3、判断是否为闰年,指定一个年份,输出是否为闰年。如:
2021:不是闰年
2020:是闰年
闰年的条件是能被4整除,但不能被100整除;或能被400整除。

1.3 if…else if…else语句

if…else if…else语句用于对多个条件进行判断,进行多种不同的处理,其语法格式如下所示:
image.png
if…else if…else语句的执行流程如下图所示:
image.png

【例1.3-1-1】实现对学生考试成绩等级划分:
90-100:A,80-89:B,70-79:C,60-69:D,0-59:E

public class if_03 {
public static void main(String[] args) {
double score = 77;
char grade;
if(score >= 90){
grade = ‘A’;
}else if(score >= 80){
grade = ‘B’;
}else if(score >= 70){
grade = ‘C’;
}else if(score >= 60){
grade = ‘D’;
}else{
grade =’E’;
}
System.out.println(score + “\t” + grade);
}
}
[练习]
4、积分兑换。0-1999积分换MP4,2000-5999积分换IPD,6000-9999积分换手机,10000积分以上换电脑。
5、根据性别和体重计算输血量。女性体重不超过50kg的输血量为200毫升,否则250毫升;男性不超过60kg的输血量为250毫升,否则300毫升。
6、当气温高于26℃时,需要开启制冷空调;气温低于10℃则开启制热空调;其余情况只需要开启送风模式即可,编制自动温控程序。

1.4 switch 语句

在if…else if…else语句中,如果条件太多,会造成:

  • 语句执行效率低,因为每个条件都要进行计算
  • 程序的可读性低,因为结构比较混乱

switch语句可以替代条件复杂的if…else if…else语句:

  • switch语句也是一种很常见的选择语句。和if条件语句不同,它只能针对某个表达式的值做出判断(条件只计算一次),从而决定执行哪一段代码。
  • 在switch语句中,使用switch关键字来描述一个表达式,使用case关键字来描述和表达式结果比较的目标值,当表达式的值和某个目标值匹配时,会执行对应case下的语句(结构清晰),switch语句的基本语法结果如图所示:

image.png
【例1.4-1-1】
在程序中使用数字0~6表示周日到周六,根据某个数字输出中文格式的星期值。
public class if_04 {
public static void main(String[] args) {
int day = 4;
String weekDay;
switch(day){
case 0:
weekDay = “星期日”;
break;
case 1:
weekDay = “星期一”;
break;
case 2:
weekDay = “星期二”;
break;
case 3:
weekDay = “星期三”;
break;
case 4:
weekDay = “星期四”;
break;
case 5:
weekDay = “星期五”;
break;
case 6:
weekDay = “星期六”;
break;
default: //case值以外的
weekDay = “日期错误”;
}
System.out.println(weekDay);
}
}
需要注意的是,在switch语句中的表达式只能是byte、short、char、int、String类型(JDK1.7引入的)的值,如果传入其他值,程序会报错。
使用switch语句的条件是:

  • 多重选择
  • 等值判断

【例1.4-1-2】实现对学生考试成绩等级划分:
90-100:A,80-89:B,70-79:C,60-69:D,0-59:E

public class if_05 {
public static void main(String[] args) {
double score = 77;
char grade;
//将条件转换为等值
int case_value = (int) score / 10;
switch(case_value){
case 10:
case 9:
grade = ‘A’;
break;
case 8:
grade = ‘B’;
break;
case 7:
grade = ‘C’;
break;
case 6:
grade = ‘D’;
break;
default:
grade = ‘E’;
}
System.out.println(score + “\t” + grade);
}
}
[练习]
7、积分兑换。0-1999积分换MP4,2000-5999积分换IPD,6000-9999积分换手机,10000积分以上换电脑。
8、指定一个人的年龄。 如果小于6岁,则输出“儿童”,6岁到11岁,输出“少儿”; 12岁到17岁,输出“青少年”; 18岁到35岁,输出“青年”; 36岁到47岁,输出“中年”; 48岁以上输出“中老年”。
9、已知2021年12月1是星期三,指定一个12月的日期,判断是星期几。