Der*_*gon 2 java integer max min
好吧也许我只是累了因为这个但我怎么能做到这一点?
int x = Integer.MAX_VALUE+10;
Run Code Online (Sandbox Code Playgroud)
// 也许
int x = Integer.MIN_VALUE-20;
Run Code Online (Sandbox Code Playgroud)
我只想要if语句来捕获x是否在"范围内"有点像这样:
if(x >= Intefer.MAX_VALUE || x <= Integer.MIN_VALUE){ //throw exception}
Run Code Online (Sandbox Code Playgroud)
但问题是,如果值如上所述,如MAX_VALUE + 10,则该值最终既不高于MAX VALUE也不低于MIN_VALUE并且不满足if条件...
编辑:澄清我的意思:我不想实际存储任何大于最大/最小值的值.想象一下:
一个字段,你写10 + 10,它说"好,那是20"接下来,有人可能会写1000000*100000,它也会回答答案,但是有人可能会写出超过最大/最小值的东西比如,10000000*1000000*1000000或类似的东西,然后程序应该都像是"举起来,这太高了!这里是你的"0"而不是"
这可以通过两种方式解决:
第一种方式:
if(x + 10 <= x){ //Has wrapped arround so throw exception}
第二种方式(更好):
long x = Integer.MAX_VALUE+10L;
现在条件正常
if(x >= Integer.MAX_VALUE){ //throw exception}
如果需要表示大于或小于限制的整数,则使用long而不是int变量.另一方面,如果你真的担心int包含大于的值的变量Integer.MAX_VALUE,那么就不要担心 - 这样的事情不可能存在.当值存储在a中时int,任何溢出或下溢都已发生.
| 归档时间: |
|
| 查看次数: |
28546 次 |
| 最近记录: |