Java Android:If语句在方法中不起作用
我试图使用if语句将变量限制在零以上,以下代码只是在if语句不存在的情况下运行:Java Android:If语句在方法中不起作用,java,android,if-statement,Java,Android,If Statement,我试图使用if语句将变量限制在零以上,以下代码只是在if语句不存在的情况下运行: private void startGame(int h1, int h2, int w1, int w2) { this.h1 = h1; this.w1 = w1; this.h2 = h2; this.w2 = w2; Intent intent = new Intent(this, Game.class); if
private void startGame(int h1, int h2, int w1, int w2) {
this.h1 = h1;
this.w1 = w1;
this.h2 = h2;
this.w2 = w2;
Intent intent = new Intent(this, Game.class);
if((h1 > 0) || (w1 > 0) || (h2 > 0) || (w2 > 0)){
startActivity(intent);
}
else {
finish();
}
}
您的一个变量大于0 将您的if语句理解为“如果h1大于零或w1大于零或…”或更简单的“如果h1、w1、h2、w2中的任何一个大于零” 我想你想要的是和。你想让它读“如果h1大于零,w1大于零…” “and”的运算符是
&&
,而不是|
if(h1 > 0 && w1 > 0 && h2 > 0 && w2 > 0){
此外,@Mahesh的评论是正确的——如果你有一个逻辑语句没有按照你认为应该的方式运行,请打印出该语句中使用的变量,并在你的头脑中用这些变量“运行”该语句的逻辑。问题很快就会清楚。我想你是想用逻辑AND(&&&)而不是OR(| |) 当任何一个维度高于零时,您发布的内容将通过检查
private void startGame(int h1, int h2, int w1, int w2) {
this.h1 = h1;
this.w1 = w1;
this.h2 = h2;
this.w2 = w2;
Intent intent = new Intent(this, Game.class);
if((h1 > 0) && (w1 > 0) && (h2 > 0) && (w2 > 0)){
startActivity(intent);
}
else {
finish();
}
}
这将确保所有维度都大于零。您试图实现什么逻辑?(是否只有一个变量必须“高于零”,或者所有变量都必须高于零?)?当我现在阅读代码时,我会说如果任何变量都是正的,那么startActivity将运行,而这似乎不是您想要的。