gpt4 book ai didi

java - 比较parseInt(String)与Int输入错误: unexpected type Java

转载 作者:行者123 更新时间:2023-12-02 11:06:51 25 4
gpt4 key购买 nike

我知道这个标题听起来像很多人喜欢的,但是我已经花了一个多小时试图用google和堆栈溢出来解决这个问题。

我试图制作一个菜单供用户选择,但是当我输入一个选项时,它不会注册为相等的菜单。

System.out.println("What would you like to do?\n1. Add\n2. End session");
String Selection = null;
Console reader;
try{
reader = System.console();
if(reader != null){
do{
Selection = reader.readLine("Please enter corresponding number: ");
if(((Integer.parseInt(Selection)) != 1) || ((Integer.parseInt(Selection)) != 2)){
System.out.println("Please enter a valid option");
}
}while(((Integer.parseInt(Selection)) != 1) || ((Integer.parseInt(Selection)) != 2));
}
}catch(Exception ex) {ex.printStackTrace();}

我试过了:
  • Selection.equals("1")
  • Selection.equals("Add")
  • "Add".equals(Selection)
  • "1".equals(Selection)

  • 而且我不知道出什么问题了。我发现如果String与String的比较不起作用,则int可以起作用,但它不起作用:(当我编译并运行程序时,它只是停留在循环中,除非在最后一个带有“parseInt”的版本中,我可以抛出摆脱循环的异常。

    当我尝试将“!=”替换为“=”时,出现了以下错误:
    Checkbook.java:171: error: unexpected type
    }while(((Integer.parseInt(Selection)) =
    1) || ((Integer.parseInt(Selection)) != 2));
    ^
    required: variable
    found: value
    1 error

    为什么我得到这个错误,但是当我有“!=”时却没有,为什么,如果我输入我作为选项输入的内容,为什么if和do/while语句甚至会执行。

    编辑:
    糟糕,我完全隔开= vs. ==。一旦解决了这个问题,它就会按我期望的那样运行:它循环了,这不是我想要的。但是,如果我使用!=,它也会循环。怎么来的???

    最佳答案

    你的逻辑是错误的。

    尝试

    !(Integer.parseInt(Selection) == 1 || Integer.parseInt(Selection) == 2)

    要么
    Integer.parseInt(Selection) != 1 && Integer.parseInt(Selection) != 2

    关于java - 比较parseInt(String)与Int输入错误: unexpected type Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48532114/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com