very_very_cai 2022-08-14 14:57 采纳率: 100%
浏览 39
已结题

自学刚学完Java基础语法一个案例傻了

问题遇到的现象和发生背景

一个买飞机票的案例,用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

  • 写回答

3条回答 默认 最新

  • 关注

    num3 == "头等舱" ===》 "头等舱" .equals(nums3)

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 8月23日
  • 已采纳回答 8月15日
  • 创建了问题 8月14日

悬赏问题

  • ¥15 smptlib使用465端口发送邮件失败
  • ¥200 总是报错,能帮助用python实现程序实现高斯正反算吗?有偿
  • ¥15 对于squad数据集的基于bert模型的微调
  • ¥15 为什么我运行这个网络会出现以下报错?CRNN神经网络
  • ¥20 steam下载游戏占用内存
  • ¥15 CST保存项目时失败
  • ¥15 树莓派5怎么用camera module 3啊
  • ¥20 java在应用程序里获取不到扬声器设备
  • ¥15 echarts动画效果的问题,请帮我添加一个动画。不要机器人回答。
  • ¥15 Attention is all you need 的代码运行