你好,我刚刚开始了关于hackerrank的编码练习,我在使用带有跳过功能的扫描仪类时遇到了一些挑战。这是我尝试过的。目标 在这个挑战中,我们开始使用条件语句。查看教程选项卡以获取学习材料和教学视频!任务给定一个整数,执行以下条件操作:如果 n 是奇数,则打印 Weird如果 n 是偶数并且在 2 到 5 的包含范围内,则打印 Not Weird如果 n 是偶数并且在 6 到 20 的包含范围内,则打印 Weird如果 n 是偶数且大于 20,则打印 Not Weird完成编辑器中提供的存根代码以打印 n 是否奇怪。输入格式包含一个正整数 n 的单行。约束输出格式如果数字很奇怪,则打印 Weird;否则,打印 Not Weird。import java.io.*;import java.math.*;import java.security.*;import java.text.*;import java.util.*;import java.util.concurrent.*;import java.util.regex.*;public class Solution { private static final Scanner scanner = new Scanner(System.in); public static void main(String[] args) { int N = scanner.nextInt(); if (N % 2 == 0 && N >= 2 && N <= 5 && N > 20) { System.out.println("not weird"); } else if (N % 2 == 0 && N >= 6 && N <= 20) { System.out.println("weird"); } else { System.out.println("weird"); } scanner.skip("(\r\n|[\n\r\u2028\u2029\u0085])?"); scanner.close(); }}请问我做错了什么。
2 回答
明月笑刀无情
TA贡献1828条经验 获得超4个赞
你混淆了&&and ||,所以你的第一个if永远不会像评论中提到的那样运行。
所以看起来唯一"Not Weird"打印出来的是2,4和偶数> 20。
因此,请充分利用它来检查"Weird"输出,否则为 print "Not Weird"。
if (n % 2 == 0) {
if ((n >= 2 && n <= 5) || (n > 20)) {
return "Not Weird";
}
}
return "Weird";
说了这么多,我不确定你想要什么 Scanner::skip
添加回答
举报
0/150
提交
取消