java - 使用if else语句扫描并打印奇数和偶数

标签 java if-statement java.util.scanner

我对 if else 语句有疑问。要求是:

  • 如果 n 是奇数,则输出 Weird
  • 如果 n 为偶数且在 2 到 5 的范围内,则输出 Not Weird
  • 如果 n 为偶数且在 6 到 20 的范围内,则输出 Weird
  • 如果 n 为偶数且大于 20,则输出 Not Weird。

当输入数字为18时,输出预计会奇怪。对于输入数字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 相同。

最佳答案

试试这个代码。

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";
        } else {
            if (N <= 5) {
                ans += "Not Weird";
            } else if (N <= 20) {
                ans += "Weird";
            } else {
                ans += "Not Weird";
            }
        }
        System.out.println(ans);
    }
}

关于java - 使用if else语句扫描并打印奇数和偶数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61100016/

相关文章:

java - 什么时候调用 toString() 方法

java - 什么是NullPointerException,我该如何解决?

javascript - Jison:if-else 和 for 语句 ara 组合时的语法冲突

c++ - 在 if 语句的条件 block 中调用 boolean 方法?

java - 使用java嵌套#if宏处理

java - 如何有效地对用户输入进行分类

java - 具有另一种数字格式的货币符号

java - 为什么 ESAPI 编码器不能与 Java 1.8 一起使用

Java class.getResourceAsStream 不适用于带前导点的文件

javascript - 分割字符串之间的 JS if 语句