请说明为什么这个java程序总是来到else部分

时间:2010-06-12 23:42:45

标签: java

  public class Test {
        public static void main(String[] args){
            if (5.0 > 5) // (5.0<5) for both case it is going to else
                System.out.println("5.0 is greater than 5");
            else 
                System.out.println("else part always comes here");
                     /*another sample*/
            if (5.0 == 5) 
                System.out.println("equals");
            else 
                System.out.println("not equal");
        }
    }

任何人都可以解释第一个“如果陈述”为什么它总是来到其他部分

第二个部分打印“等于”

5 个答案:

答案 0 :(得分:3)

您正在测试(5.0 <5)或(5.0> 5)。因为(5.0 == 5)那么这意味着它不小于5(假)而不大于5(假)。因此,(5.0 <5)和(5.0> 5)都将返回false,并且您将始终点击else语句。

如果你做了以下(这是你在下半场做的):

if (5.0 == 5)
    System.out.println("5.0 is equal to 5");
else 
    System.out.println("else part always comes here");

然后你将不再点击else语句(正如你在问题的后半部分看到的那样)。

答案 1 :(得分:2)

“小于”的反面是“大于”。它是“大于或等于”,在这种情况下也是如此。

答案 2 :(得分:1)

因为5.0不小于5.它等于5.所以5.0 < 5为假。

答案 3 :(得分:1)

它总是进入else部分,因为5.0不小于5.它是相同的值。

答案 4 :(得分:1)

5.0不大于5;他们是平等的。因此,它会求助于else,因为if语句不会返回true。