在以下代码中,if(timesout[entry] == "exit")
下的块将永远不会执行。我已经验证timesout[entry]
当前循环在调试模式下被设置为“exit”,并且在if语句被评估之前打印出变量,但无论如何,当我输入时,块永远不会执行{ {1}}在提示时,我很难过为什么。
exit
答案 0 :(得分:9)
timesout[entry] == "exit"
使用equals()
比较字符串,==
比较引用相等
查看强>
答案 1 :(得分:4)
而不是
if(timesout[entry] == "exit")
使用
if(timesout[entry].equals("exit"))
或
if("exit".equals(timesout[entry]))
==和equals()
之间的更多信息 http://stackoverflow.com/questions/12171783/how-is-it-possible-for-two-string-objects-with-identical-values-not-to-be-equal/12171818#12171818
答案 2 :(得分:1)
你能试试吗
if("exit".equals(timesout[entry]))
而不是
if(timesout[entry] == "exit")
正如@Jigar Joshi
所指出的那样,==
和equals()