目录
前言
当我们谈到编程,尤其是Java这种高级编程语言,选择结构是必不可少的部分。选择结构,也称为条件语句,允许我们根据特定条件执行不同的代码块。在Java中,我们主要使用if和switch语句来实现选择结构。
一、if语句
1、if语句的作用
根据给定的条件判断是否执行某段代码。如果条件满足(为真),则执行if语句后的代码块;如果条件不满足(为假),则跳过该代码块。
2、if选择结构
单if语句
格式:
if(条件表达式){
语句体;
}
注意:如果花括号中只有一条语句,可以省略花括号。但要执行的是多条语句,必须用花括号括起来。
流程图:
先判断“表达式”的值,如果值为真(非零),则执行“语句”;如果值为假(零),则不执行语句。
例如:
public class Test {
public static void main(String[] args) {
int x = 10;
if (x > 6) {
System.out.println("x大于6");
}
}
}
输出结果如下:
x大于6
在这个例子中,定义了一个整数变量x并赋值为10。然后使用if语句判断x是否大于6,如果是,则执行System.out.println语句输出"x大于6"。因为10大于6,所以程序会执行输出语句并输出"x大于6"。
if-else语句
格式:
if(条件表达式){
语句1;
}else{
语句2;
}
注意事项:
else子句不能单独使用,它必须是if语句的一部分,与最近的if语句配对使用
流程图:
先判断“表达式”的值,如果值为真(非零),则执行“语句1”;如果值为假(零),则执行“语句2”。
例如:
public class Test {
public static void main(String[] args) {
int a = 5;
int b = 10;
if (a > b) {
System.out.println(a);
} else {
System.out.println(b);
}
}
}
输出结果如下:
10
在这个例子中,因为a小于b,所以程序会执行else
部分的代码,输出10。
多重if语句
格式:
if(条件表达式1){
语句1;
}else if(条件表达式2){
语句2;
···
}else if(条件表达式n){
语句n;
}else{
语句m;
}
注意事项:
1.不论多分支if语句中有多少个条件,只会执行符合条件的一个,如果没有符合条件的,则执 行else子句中的语句。
2.else语句可以省略。
3.如果if语句或else子句中要执行的语句超过一条,则必须将这些语句用大括号括起来。
流程图:
首先依次判断表达式1的值,若其值为真就执行语句1,若其值为假就继续判断表达式2,依次类推,如果所有表达式都为假,就执行语句m。
例如:
public class Test {
public static void main(String[] args) {
/*
* 根据学生成绩划分不同的等级
*
* >=90 A
* >=80 B
* >=70 C
* >=60 D
* <60 F
*/
int score = 50;
if (score >= 90) {
System.out.println("学生的等级为:A");
} else if (score >= 80) {
System.out.println("学生的等级为:B");
} else if (score >= 70) {
System.out.println("学生的等级为:C");
} else if (score >= 60) {
System.out.println("学生的等级为:D");
} else {
System.out.println("学生的等级为:F");
}
}
}
输出结果如下:
学生的等级为:F
在这个例子中,使用了多重if语句来根据学生的考试成绩进行评级。如果成绩大于等于90,则评为A级;如果成绩在80到89之间,则评为B级;如果成绩在70到79之间,则评为C级;如果成绩在60到69之间,则评为D级;如果成绩低于60,则评为F级。
二、switch语句
1、switch语句的作用
根据switch表达式的值与多个不同值进行比较,若值相等则执行代码,不相等则不执行代码。
2、switch结构
格式:
switch(表达式){
case 常量1:
语句1;
break;
case 常量2:
语句2;
break;
...
case 常量n:
语句n;
break;
default:
语句n+1;
break;
}
注意事项:
1.switch后面的表达式的值必须是整型(long除外)、字符型、字符串和枚举类型。
2.各case语句之后的常量表达式的值不能相同。
3.如果某个case语句最后的break语句被省略,则执行完该case语句之后,系统则会继续执行 下一个case语句。
4.多个case语句可以共用一组执行语句。
5.在case后,允许有多个语句,可以不用花括号括起来。
流程图:
案例:
public class Test {
public static void main(String[] args) {
// 根据输入的数字判断是星期几
int day = 6;
switch (day) {
case 1:
System.out.println("Monday\n");
break;
case 2:
System.out.println("Tuesday\n");
break;
case 3:
System.out.println("Wednesday\n");
break;
case 4:
System.out.println("Thursday\n");
break;
case 5:
System.out.println("Friday\n");
break;
case 6:
System.out.println("Saturday\n");
break;
case 7:
System.out.println("Sunday\n");
break;
default:
System.out.println("Invalid day\n");
}
}
}
输出结果如下:
Saturday
三、if、switch语句的异同点
相同点:
- 两者都是条件控制语句,用于根据不同的条件执行不同的操作。
- 都可以包含多个分支,以处理多个条件。
不同点:
1.等值判断用switch语句。
2.switch语句通常用于处理多个连续的条件分支,而if语句可以用于处理任意数量的条件分支。