Java if Statement,'Else'仍在执行

时间:2012-09-03 18:19:29

标签: java if-statement execute

我正在学习Java,希望有一天能够擅长Java。现在我正在玩If Statements。我在玩游戏时制作了以下代码:

import java.util.Scanner;

class programBegin {
public static void main(String args[]) {

    int myNum;

    Scanner sc = new Scanner(System.in); // Creates variable sc as type Scanner
    System.out.println("Enter a number between 1 and 10: ");
    myNum = sc.nextInt(); // Requests input and will store it as type int.

    if (myNum > 5) {
        System.out.println("Your number is greater than 5.");
    }
    if (myNum == 5) {
        System.out.println("your number is equal to 5.");
    } else {
        System.out.println("Your number is less than 5.");
    }
  }
}

如果我输入6例如,我得到的输出是:

您的电话号码大于5。

您的电话号码小于5。

我认为除非之前的陈述是假的,否则不应该执行?

8 个答案:

答案 0 :(得分:12)

您在else之前错过了if (myNum == 5)

if (myNum > 5) {
    System.out.println("Your number is greater than 5.");
} else if (myNum == 5) {
    System.out.println("your number is equal to 5.");
} else {
    System.out.println("Your number is less than 5.");
}

答案 1 :(得分:2)

如果

将其更改为else
if (myNum > 5) {

} else if (myNum == 5) {

} else {

}

答案 2 :(得分:1)

如果你在第二个if之前添加一个else,它将按预期工作。

答案 3 :(得分:1)

您的代码相当于"如果数字超过5,请打印此代码。如果数字是5,打印此。如果number不是5,请打印。"

您的else声明与if (myNum == 5)相对应,而不是if (myNum > 5)

你可能希望在这里使用if-else语句。

if (myNum > 5) {
    System.out.println("Your number is greater than 5.");
} else if (myNum == 5) {
    System.out.println("your number is equal to 5.");
} else {
    System.out.println("Your number is less than 5.");
}

答案 4 :(得分:0)

在第一个if ..... 之后,它不存在块 ....它还检查第二个if ...并且它是一个假的。 .it进入其他...

以这种方式试试....

if (myNum > 5) {
        System.out.println("Your number is greater than 5.");
    }
    if (myNum == 5) {
        System.out.println("your number is equal to 5.");
    } 
   else if(myNum < 5) {
        System.out.println("Your number is less than 5.");
    }

   if (myNum > 5) {
            System.out.println("Your number is greater than 5.");
        }
        else if (myNum == 5) {
            System.out.println("your number is equal to 5.");
        } 
       else (myNum < 5) {
            System.out.println("Your number is less than 5.");
        }

答案 5 :(得分:0)

你需要把你的第二个if变成else if语句,因为第二个if总是被检查并且它返回false因为6!= 5,这意味着你的其他人将被评估。

答案 6 :(得分:0)

您可以使用它来获得更高的性能。

如果mynum大于5,则会省略另外两个ifs:

if (myNum > 5) {
    System.out.println("Your number is greater than 5.");
} else{
    if (myNum == 5) {
        System.out.println("your number is equal to 5.");
    } else if(myNum < 5) {
        System.out.println("Your number is less than 5.");
    }
}

答案 7 :(得分:0)

这是两个不同的'if'语句,而不是一个。有很多方法可以解决这个问题...请参阅上面的许多不同方法:)有趣的是,知道不放一个单词可以有不同的输出,或者在这种情况下,输出不止一个。在这种情况下,'else if'将是修复小错误的好方法。祝你学习顺利。