为什么';这个代码不能终止我的程序吗?JAVA

为什么';这个代码不能终止我的程序吗?JAVA,java,exit,terminate,Java,Exit,Terminate,我正在尝试实现系统。退出(0)在控制台中键入单词“exit”时终止我的程序。我写了以下方法: public static void exit(){ Scanner input = new Scanner(System.in); Str1 = input.next(String); if (str1 = "exit"){ System.exit(0); } else if (str1 = "clear"){

我正在尝试实现
系统。退出(0)在控制台中键入单词“exit”时终止我的程序。我写了以下方法:

    public static void exit(){

    Scanner input = new Scanner(System.in);
    Str1 = input.next(String);

    if (str1 = "exit"){

        System.exit(0);
    }

    else if (str1 = "clear"){

        System.out.println("0.0");
    }       
}
而且它似乎不起作用。有人有什么建议吗

谢谢
P.S如果您还不能判断的话,在控制台中输入“clear”时,“clear”应该只返回0.0。

将字符串与

相等()进行比较。
而不是与
=
进行比较

原因是
==
只是比较对象引用/原语,其中as-String的
.equals()
方法检查相等性

if (str1.equals("exit")){

}
而且

else if (str1.equals("clear")){

}

可能有用:

将字符串与
equals()
比较,而不是与
=
比较

原因是
==
只是比较对象引用/原语,其中as-String的
.equals()
方法检查相等性

if (str1.equals("exit")){

}
而且

else if (str1.equals("clear")){

}
可能有用的是:

而不是

if (str1 = "exit"){

而不是

if (str1 = "exit"){

使用
String.equals(String other)
函数比较字符串,而不是使用
=
运算符

函数检查字符串的实际内容,
=
操作符检查对对象的引用是否相等。请注意,字符串常量通常是“插入”的,因此具有相同值的两个常量实际上可以与
=
进行比较,但最好不要依赖于此

因此,请使用:

if ("exit".equals(str1)){

}

使用
String.equals(String other)
函数比较字符串,而不是使用
=
运算符

函数检查字符串的实际内容,
=
操作符检查对对象的引用是否相等。请注意,字符串常量通常是“插入”的,因此具有相同值的两个常量实际上可以与
=
进行比较,但最好不要依赖于此

因此,请使用:

if ("exit".equals(str1)){

}
使用
if(str1=“exit”)
可以使用分配而不是比较。 您可以使用
equals()
方法进行比较。

如果(str1=“exit”)
使用分配而不是比较。 您可以与
equals()
方法进行比较。

除了
equals()
,还有
input.next(字符串模式)要求模式不
字符串
数据类型

将代码更改为:

public static void exit(){   

Scanner input = new Scanner(System.in);
str1 = input.next(); //assumed str1 is global variable

if (str1.equals("exit")){

    System.exit(0);
}

else if (str1.equals("clear")){

    System.out.println("0.0");
}

}
注:

除了
equals()
,还有
输入。下一步(字符串模式)要求模式不
字符串
数据类型

将代码更改为:

public static void exit(){   

Scanner input = new Scanner(System.in);
str1 = input.next(); //assumed str1 is global variable

if (str1.equals("exit")){

    System.exit(0);
}

else if (str1.equals("clear")){

    System.out.println("0.0");
}

}

注意:

如果你在谷歌上搜索如何比较字符串,你就会得到答案。:)顺便说一句,除了equals(),我认为你的代码有一些小错误。Str1和Str1不一样,你调试过了吗?是否调用了
System.exit(0)
?如果您在谷歌上搜索如何比较字符串,您就会得到答案。:)顺便说一句,除了equals(),我认为你的代码有一些小错误。Str1和Str1不一样,你调试过了吗?是否调用了
System.exit(0)
?更好-
“exit”.equals(str1)
@sanbhat添加了这一点。谢谢:)更好-
“退出”。等于(str1)
@sanbhat补充道。谢谢:)这些都很有帮助,谢谢。但是,我实现了这些更改,控制台仍然抛出异常,而不是终止程序。抛出什么异常@CharlieTidmarsh@CharlieTidmarsh你能告诉我你的例外情况吗?这些都很有帮助,谢谢。但是,我实现了这些更改,控制台仍然抛出异常,而不是终止程序。抛出什么异常@CharlieTidmarsh@CharlieTidmarsh您能告诉我您的异常情况吗?Change
str1=input.next()
to
String str1=input.next(),除非
str1
是全局variable@JulianG注意。谢谢更改
str1=input.next()
to
String str1=input.next(),除非
str1
是全局variable@JulianG注意。非常感谢。