2

我正在学习Java,希望有一天能擅长它。现在我正在玩 If 语句。我在玩耍时编写了以下代码:

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 个。

我认为 else 不应该执行,除非前面的语句是错误的?

4

8 回答 8

12

elseif (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.");
}
于 2012-09-03T18:21:03.160 回答
2

将其更改为 else if

if (myNum > 5) {

} else if (myNum == 5) {

} else {

}
于 2012-09-03T18:21:14.363 回答
1

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

于 2012-09-03T18:21:40.117 回答
1

您的代码相当于“如果数字超过 5,打印这个。如果数字是 5,打印这个。如果数字不是 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.");
}
于 2012-09-03T18:22:12.800 回答
0

在第一个if......它不存在块之后......它还检查第二个如果......并且作为它的错误......它进入else......

试试这个方法......

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.");
        }
于 2012-09-03T18:22:06.543 回答
0

您需要将第二个 if 放入 else if 语句,因为第二个 if 总是被检查并且它返回 false 因为 6!= 5,这意味着您的 else 将被评估。

于 2012-09-03T18:22:06.793 回答
0

您可以使用它来提高性能。

这里如果 mynum 大于 5 ,其他两个 if 将被省略:

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.");
    }
}
于 2012-09-03T18:35:17.230 回答
0

这些是正在执行的两个不同的“if”语句,而不是一个。有很多方法可以解决这个问题......请参阅上面的许多不同方法 :) 有趣的是,不输入一个单词可能会产生不同的输出,或者在这种情况下,会产生多个输出。在这种情况下,“else if”将是修复小错误的好方法。祝您学习过程顺利。

于 2012-09-03T18:35:36.617 回答