试图弄清楚如何使用字符退出 System.exit

Posted

技术标签:

【中文标题】试图弄清楚如何使用字符退出 System.exit【英文标题】:Trying to figure out how to System.exit with a character 【发布时间】:2016-03-11 21:53:42 【问题描述】:

我是 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());
        

    



【问题讨论】:

【参考方案1】:

应该是

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

而不是

if (op.equals("x")) 

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

【讨论】:

【参考方案2】:

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

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

【讨论】:

【参考方案3】:

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

【讨论】:

以上是关于试图弄清楚如何使用字符退出 System.exit的主要内容,如果未能解决你的问题,请参考以下文章

在 java 中使用 System.exit(0) 退出程序

我试图弄清楚如何将 dbus 与 pidgin 一起使用

试图弄清楚如何使用列表返回数据框中每一列的平均值

试图弄清楚如何根据特定书籍的类型更改背景图像

C# 试图弄清楚如何将负值合并到我的代码中

试图弄清楚如何将总分恢复到主要打印出来。它正在显示但未存储在变量中