先看例题,文章后面有知识点总结 。
public class Test1 {
public static void main(String[] args) {
//完成买飞机票的价格计算
//1.让用户输入机票原价,月份,座位类型
Scanner sc = new Scanner(System.in);
System.out.println("请输入机票原价:");
double money = sc.nextDouble();
System.out.println("请输入月份(1-12):");
int month = sc.nextInt();
System.out.println("请输入座位类型:");
String type = sc.next();
//4.调用方法统计结果
System.out.println("机票优惠后的价格是:"+calc(money,month,type));
}
/**
* 2.定义方法接收信息,统计优惠后的价格返回。
*/
public static double calc(double money,int month,String type) {
//3.判断用户选择的信息情况
if(month>=5 && month<=10){
//旺季
switch(type){
case"头等舱":
money *= 0.9;
break;
case"经济舱":
money *= 0.85;
break;
default:
System.out.println("您输入的座位类型有误");
money = -1;
}
}else if(month == 11||month == 12||month>=1 && month<=4){
//淡季
switch(type){
case"头等舱":
money *= 0.7;
break;
case"经济舱":
money *= 0.65;
break;
default:
System.out.println("您输入的座位类型有误");
money = -1;
}
}else{
System.out.println("您输入的月份有问题");
money = -1;
}
return money;
}
}
switch分支结构:判断值匹配
if分支结构:判断区间范围
比如,成绩在80-90之间,获得二等奖;成绩在90-100之间,获得一等奖。这种情况只有用if就行没必要用switch,因为同一区间只有一个值匹配。