java - 多个条件 else/if 语句有些错误?

标签 java if-statement boolean conditional-statements

我正在做一个黑客网络挑战,其中 n 是一个 int 输入。条件是:

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

我确信代码具有逻辑性,并且不认为存在语法。它给出了正确的响应,但 hackernet 仍然说它不正确,所以我来这里看看是否有人能看出问题所在

public static void main(String[] args)
{
    int N = scanner.nextInt();
    scanner.skip("(\r\n|[\n\r\u2028\u2029\u0085])?");

    if (N % 2 != 0 || N % 2 == 0 && N >= 6 && N <= 20)
    {
        System.out.print("weird");
    }
    else
    {
        System.out.print("not weird");
    }
}

最佳答案

问题出在 else 条件中的逻辑,它也会捕获小于 2 的 N 值。试试这个版本:

if (N % 2 != 0)
{
    System.out.print("weird");
}
else if (N >= 2 && N <= 5 || N > 20)
{
    System.out.print("not weird");
}
else if (N >= 6 && N <= 20)
{
    System.out.print("weird");
}
else
{
    // NOTE: if the code still fails, remove this else condition
    System.out.print("unexpected value of N");
}

注意:要让您的代码通过 Hackernet 任务,您可能必须完全删除 else 条件。我添加它是为了完整性,但 Hackernet 可能会测试 N=1 以查看是否没有打印任何内容。

关于java - 多个条件 else/if 语句有些错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54124051/

相关文章:

java - Java中的 key SSL套接字连接

c++ - 返回到 C++ 中的上一个 if 语句

java - If 语句不接受正确的值

java - 如何制作包含文件目录的字符串数组?

java - Spring 启动 : error ="invalid_grant", error_description ="Bad credentials"

java - Hibernate - 如何以编程方式强制它返回 Long 而不是 BigInteger?

无法在 if 语句之外访问 c++ 结构

C++素数没有给出正确答案

javascript - undefined 和 NaN,隐式与显式转换为 boolean 值

c++ - C++解析命令行参数和 boolean