0

我是 Java 和编码的新手,我正在尝试做一个计算器,你可以在其中输入你想要的操作,然后输入两个数字。计算是在名为“mth”的开关内完成的,但我无法弄清楚如何使用字符退出我的程序。

如您所见,我尝试过使用,

if(op.equals("x")) System.exit(0);

但似乎该程序根本没有注册它。

我已经尝试了很多事情,例如使用布尔值并玩了一下,但我无法超越这一点。

public static void main(String[] args) throws IOException {

    Locale.setDefault(new Locale("sv","SE"));
    Scanner op = new Scanner(System.in);

    System.out.println("Operation och två heltal (x för att avsluta)");

    while(op.hasNext()){

        if (op.equals("x")) {
        System.exit(0);
        }
        else{
        mth(op.next(), op.nextInt(), op.nextInt());
        }

    }


}
4

3 回答 3

1

它应该是

if (op.next().equals("x")) {

代替

if (op.equals("x")) {

op是完整的,所以需要从对象Scanner object中取出使用的值,然后比较。op.next()op

于 2015-12-07T10:22:18.667 回答
0

那是因为您将扫描仪与“x”而不是输入的符号进行比较。你可以使用String input = op.next()然后if (input.equals("x")) System exit(0);

编辑:我认为最好使用附加变量进行比较,因为使用op.next()两次可能会导致不需要的结果。通过使用额外的变量,您可以在mth(input, ...)之后使用。

于 2015-12-07T10:23:14.717 回答
0

op.equals("x") 替换为 op.next().equals("x") 或更好的 "x".equals(op.next())

于 2015-12-07T10:25:59.960 回答