try
{ BufferedReader br=new BufferedReader(new
InputStreamReader(System.in));
int t=Integer.parseInt(br.readLine());
if (t <0 && t>11) System.exit(0);
for (int i = 0; i<t;i++){
int count=Integer.parseInt(br.readLine());
if (count <1 && count>101) System.exit(0);
.
.
}catch(Exception e){}
}
如果计数&gt; = 102,程序没有终止,任何人都可以建议我做什么以及为什么? t> = 11
答案 0 :(得分:5)
if (t <0 && t>11) System.exit(0);
在同一时间点,数字不能小于0且大于11。或者确切地说:Java支持的数字类型不允许这样做。
从这个意义上说,你可能意味着:
if (numberFromUser < 0 || numberFromUser > 11) {
System.out.println("number " + numberFromUser + " is invalid, exiting");
System.exit(1);
}
请注意我所做的更改:
t
是一个绝对毫无意义的名字 - 使用意为的名字System.exit()
的值是应用程序的“返回代码”。按惯例,返回零表示:一切正常,通过。因此,在错误情况下,您应该返回零以外的其他内容。最后:在整个地方使用System.exit()
本身就是糟糕的做法。您真的不希望您的应用程序具有超过一个 exit()
点。换句话说:您应该将整个应用程序设计为使用例外。当存在真正的“硬”问题时 - 给用户一个好消息,并抛出一个异常(可能是你的顶层捕获并变成一个有意义的,定义的非零返回代码)。
答案 1 :(得分:0)
count
不能同时小于0且大于11。
答案 2 :(得分:0)
这种情况永远不会得到满足:
if (count <1 && count>101) System.exit(0);
count
不能小于1
且大于101