问题遇到的现象和发生背景
一个买飞机票的案例,用if做的,不知道为什么这种情况判定false
问题相关代码,请勿粘贴截图
public class Demo1 {
public static void main(String[] args) { Scanner sc = new Scanner(System.in);
System.out.println("输入机票原价");
double num1 = sc.nextDouble();
System.out.println("输入月份");
int num2 = sc.nextInt();
System.out.println("输入头等舱或经济舱");
String num3 = sc.next();
double money =add(num1,num2,num3);
System.out.println(money);
public static double add(double num1 , int num2 , String num3) {
double money = 0.0;
if (num2 >= 5 && num2 <= 10) { //5月到10月价格
if (num3 == "头等舱"){
money = num1 * 0.9; //头等舱9折 经济舱85折
}else {
money = num1 * 0.85;
}
} else if ((1 <= num2 && num2 <5) || (10 < num2 && num2 <= 12)){ //11月到1月价格
if (num3 == "头等舱"){
money = num1 * 0.7;
}else{ // 不知道为什么系统不管是不是头等舱就直接到else这里了
money = num1 * 0.65;
}
}
return money;
运行结果及报错内容
输入机票原价
1000
输入月份
2
输入头等舱或经济舱
头等舱
650.0