一.定义
条件语句可根据不同的条件执行不同的语句。包括if条件语句与switch多分支语句。
二.if结构
- 第一种格式
格式 if(条件表达式){
执行的代码块
}
- 执行流程
- 流程说明 首先判断关系表达式看其结果是true还是false 如果是true就执行语句体 如果是false就不执行语句体
- 举例
public static void main(String[] args) {
System.out.println("开始");
// 定义两个变量
int a = 10;
int b = 20;
if (a == b) {
System.out.println("a等于b");
}
int c = 10;
if (a == c) {
System.out.println("a等于c");
}
System.out.println("结束");
}
- 第二种格式
• 格式 if(条件表达式){
执行的代码块1
}else{
执行的代码块2
}
- 执行流程
- 流程说明 首先判断关系表达式看其结果是true还是false 如果是true就执行语句体1 如果是false就执行语句体2
- 举例
public static void main(String[] args) {
System.out.println("开始");
// 判断给定的数据是奇数还是偶数
// 定义变量
int a = 100;
// 给a重新赋值
a = 99;
if (a % 2 == 0) {
System.out.println("a是偶数");
} else {
System.out.println("a是奇数");
}
System.out.println("结束");
}
- 第三种格式
• 格式 if(条件表达式){
执行的代码块
}else if(条件表达式){
执行的代码块;
}…(此处省略N个else if)
else{
执行代码块;
}
- 执行流程
- 流程说明
- 首先判断关系表达式1看其结果是true还是false 如果是true就执行语句体1
- 如果是false就继续判断关系表达式2看其结果是true还是false
- 如果是true就执行语句体2 如果是false就继续判断关系表达式…看其结果是true还是false …
- 如果没有任何关系表达式为true,就执行语句体n+1
- 举例
public static void main(String[] args) {
// x和y的关系满足如下:
// x>=3 y = 2x + 1;
// -1<=x<3 y = 2x;
// x<=-1 y = 2x – 1;
// 根据给定的x的值,计算出y的值并输出。
// 定义变量
int x = 5;
int y = 0;
if (x >= 3) {
y = 2 * x + 1;
} else if (x >= -1 && x < 3) {
y = 2 * x;
} else if (x <= -1) {
y = 2 * x - 1;
}
System.out.println("y的值是:"+y);
}
- 注意事项
- 一旦满足某个条件表达式,则进入其执行语句块执行,执行完毕后不会执行其一下的条件语句。
- 如果多个条件表达式之间为“互斥”关系,多个语句之间可以上下调换顺序,一旦是包含关系,要求条件表达式范围小的写到范围大的上边;
三.switch结构
- 执行流程
- 流程说明 首先计算出表达式的值 其次,和case依次比较,一旦有对应的值,就会执行相应的语句,在执行的过程中,遇到break就会结束。 最后,如果所有的case都和表达式的值不匹配,就会执行default语句体部分,然后程序结束掉。
- 举例
public static void main(String[] args) {
//创建键盘录入对象
Scanner sc = new Scanner(System.in);
//接收数据
System.out.println("请输入一个数字(1-7):");
int weekday = sc.nextInt();
//switch语句实现选择
switch (weekday) {
case 1:
System.out.println("星期一");
break;
case 2:
System.out.println("星期二");
break;
case 3:
System.out.println("星期三");
break;
case 4:
System.out.println("星期四");
break;
case 5:
System.out.println("星期五");
break;
case 6:
System.out.println("星期六");
break;
case 7:
System.out.println("星期日");
break;
default:
System.out.println("你输入的数字有误");
break;
}
}
- 注意事项
- swich(表达式)中表达式的返回值必须是以下几种类型之一:
byte,short,char,int,枚举(jdk1.5),String(jdk1.7) - case子句中的值必须是常量,且所有case子句中的值应是不同的;
- default子句是可任选的,当没有匹配的case时,执行default;
- break语句用来在执行完一个case分支后使程序跳出swich语句块;如果没有break程序会顺序执行到swich结尾;