下面是我的if语句的代码,该代码应根据n的值打印出字符串“ Weird”或“ Not Weird”。
public class Solution {
public static String weirdOrNotWeird(){
int n;
String ans = "";
// if n is odd or n is even & 5 < n < 21 print Weird
if((n % 2 == 1) || ((n % 2 == 0) && (n > 5 && n < 21))){
ans = "Weird";
// otherwise print Not Weird
} else {
ans = "Not Weird";
}
System.out.println(ans);
return ans;
}
}
编译时,出现运行时错误,提示“ stdout无响应”,因此没有输出。
private 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();
}
这是问题的其余代码,但是我在这部分没有任何错误。
更新:我没有在weirdOrNotWeird()
函数中将int n定义为参数,也没有在我的main方法中调用weirdOrNotWeird()
函数。完成这些操作后,我的代码即可正常工作。
答案 0 :(得分:0)
使用一个参数定义您的方法,并在此方法中传递n
作为参数。
public static String weirdOrNotWeird(int n) {
String ans = "";
// if n is odd or n is even & 5 < n < 21 print Weird
if ((n % 2 == 1) || ((n % 2 == 0) && (n > 5 && n < 21))) {
ans = "Weird";
// otherwise print Not Weird
} else {
ans = "Not Weird";
}
return ans;
}
在scanner.skip("(\r\n|[\n\r\u2028\u2029\u0085])?");
传递n
作为参数之后,调用您的方法,如下所示:
int n = scanner.nextInt();
scanner.skip("(\r\n|[\n\r\u2028\u2029\u0085])?");
System.out.println(weirdOrNotWeird(n));
scanner.close();