【发布时间】:2020-04-08 11:52:07
【问题描述】:
我对这个 if else 语句有疑问。要求是:
- 如果 n 是奇数,打印 Weird
- 如果 n 是偶数并且在 2 到 5 的范围内,则打印 Not Weird
- 如果 n 是偶数并且在 6 到 20 的范围内,则打印 Weird
- 如果 n 是偶数且大于 20,则打印 Not Weird。
当输入数字是 18 时,输出应该是 Weird。 与输入数字 20 相同。
import java.util.*;
public class Solution {
public static final Scanner scanner = new Scanner(System.in);
public static void main(String[] args) {
int N = scanner.nextInt();
scanner.skip("(\r\n|[\n\r\u2028\u2029\u0085])?");
scanner.close();
String ans = "";
if ((N % 2) == 1) {
ans += "Weird";
System.out.println(ans);
}
else if ((N % 2) == 0) {
if (N >= 2 || N <= 5) {
ans += "Not Weird";
System.out.println(ans);
}
}
else if ((N % 2) == 0) {
if (N >= 6 || N <= 20) {
ans += "Weird";
System.out.println(ans);
}
}
else if ((N % 2) == 0) {
if (N > 20) {
ans += "Not Weird";
System.out.println(ans);
}
}
}
}
编辑:但是当我输入数字 18 而不是 Weird 时,输出为 Not Weird。,数字 20 也是如此。
【问题讨论】:
-
三个 else-if 条件相同 (N%2)==0?那是行不通的。
标签: java if-statement java.util.scanner