我一直想知道我的代码有什么问题
String s = JOptionPane.showInputDialog(null,"Enter discount type");
if(s == "PWD"){
dis = 0.25;
}
else{
dis = 0;
JOptionPane.showMessageDialog(null, s);
}
当我运行程序时,它会在'else'块中执行代码,而不是执行'if'块中的操作。谢谢!
答案 0 :(得分:2)
如果您使用:
s ==“PWD”
java通过“PWD”值定义另一个String,并比较s和新var的引用 你必须使用:
// custom error handler
var errorHandler = function (response) {
viewModel.isLoading(false);
toastr.error(response.status + ' ' + response.statusText);
};
// not found override for routes that have not been defined
this.notFound = function () {
toastr.error("404 Not Found");
}
// user route
this.get('/#/users/:id', function (context) {
amplify.store('state.active-hash', this.path, { expires: config.storeExpiration });
this.title(config.rootTitle + 'Edit User');
context.load('/users/' + context.params.id, { error: errorHandler, cache: false }).swap(function () { replaceBindings(viewModel.editUser); });
});
答案 1 :(得分:2)
==
测试引用相等性(它们是否是同一个对象)
.equals()
测试价值平等(它们在逻辑上是否“相等”)。
Objects.equals()
在调用.equals()之前检查空值,因此您不必(从JDK7开始,也可以在Guava中使用)。
试试这样
if(s.equals("PWD"))
答案 2 :(得分:1)
你应该使用字符串的equals方法。
_mm_insert_ps
答案 3 :(得分:1)
import javax.swing.JOptionPane;
公共课测试{
public static void main(String[] args) {
double dis = 0;
// TODO Auto-generated method stub
String s = JOptionPane.showInputDialog(null,"Enter discount type");
if(s.equalsIgnoreCase("PWD")){
dis = 0.25;
}
else{
dis = 0;
JOptionPane.showMessageDialog(null, s);
}
System.out.println(dis);
}
}
试试这个我使用.equalsIgnoreCase而不是==
答案 4 :(得分:0)
==
调用参考相似度
和.equals()
检查值的相似性,因此最好使用(s.equals("PWD"))