Java Android: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

我试图使用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((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将运行,而这似乎不是您想要的。