为什么';这个代码不能终止我的程序吗?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您能告诉我您的异常情况吗?Changestr1=input.next()
toString str1=input.next()代码>,除非str1
是全局variable@JulianG注意。谢谢更改str1=input.next()
toString str1=input.next()代码>,除非str1
是全局variable@JulianG注意。非常感谢。