iF结构
if(表达式,值为true){
执行代码段A
} else {
执行代码段B
}
例如:我国法律规定,大于或等于18周岁为成年人,否则是未成年人。那么用java代码怎么来实现呢?
import java.util.Scanner;
public class TestIf {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int age;
System.out.println("请输入您的年龄?");
age = input.nextInt();
if (age >= 18) {
System.out.println("您是成年人!");
} else {
System.out.println("您是未成年人!");
}
}
}
其运行结果如下:
可以看到的是当if后面括号中的值为true的时候,执行代码A,否则就执行代码B
下面来说阶梯式if结构,同样按照一个例子来说:我们规定年龄小于18岁为未成年人,年龄在18到40之间为青年人,在40到60岁为中年人(此划分纯属为了讲一个例子,具体的划分我也没去搜)
import java.util.Scanner;
public class TestIf2 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int age;
System.out.println("请输入您的年龄");
age = input.nextInt();
if (age < 18) {
System.out.println("您是未成年人");
} else if(age >= 18 && age < 40) {
System.out.println("您是青年人");
} else if (age >= 40 && age < 60) {
System.out.println("您是中年人");
}
}
}
运行结果如下:
switch结构
switch(条件变量) {
case 值:{
代码段
break;
}
default :{
代码段
}
}
我们可以举这么一个例子,坐公交车时,投一元的是普通公交车,投两元的是空调车
import java.util.Scanner;
public class TestSwitch {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int money;
System.out.println("请投币");
money = input.nextInt();
switch (money) {
case 1:
System.out.println("普通公交车");
break;
case 2:
System.out.println("空调公交车");
break;
default:
break;
}
}
}
运行结果如下
需要强调的是:case后为常量表达式,不能是某个范围;每个代码段后都不能忘记break关键字;jdk1.7开始支持String字符串的判定
switch与阶梯式if的区别
1)阶梯式if中表达式可以是一个范围,但是switch只能是一个常量
2)所有的switch都可以改为阶梯式if,但阶梯式if不一定能改为switch(例如阶梯式if中的表达式是一个范围的情况下)