java如何使用“x<=y&&x>=y&&x!=y”使循环无限?
几年前我就有过这个面试问题,但我还没有找到答案
x和y应该是什么来构成一个无限循环
while (x <= y&& x >= y && x != y) {
}
我们尝试了Nan
、infinity+/-
、null
float
vsint
你可以在下面搜索框中键入要查询的问题!
几年前我就有过这个面试问题,但我还没有找到答案
x和y应该是什么来构成一个无限循环
while (x <= y&& x >= y && x != y) {
}
我们尝试了Nan
、infinity+/-
、null
float
vsint
# 1 楼答案
你已经得到了答案,我只是想说我是如何得到同样的答案的。 在正常情况下,这样的测试是无用的,两个数字不可能这样工作。这意味着它必须是特定于java的
x和y可以是两种简单的类型——这使得它不可能马上实现
x和y可以是对象。但与什么对象相比<;=或者>;=?只有“盒装”数字。 因此答案很快就出来了
# 2 楼答案
给你
# 3 楼答案
您需要两个可比较、值相同但代表不同实例的变量,例如:
x <= y
和y <= x
都是真的,因为Integer
是非固定的,但是实例等式x == y
是假的请注意,它也与
Float
、Long
和Double
一起工作,任何值(不仅仅是0)都可以工作您还可以利用JVM的复杂性——它们通常只缓存127个整数,所以这也可以:
(但对127来说不会)
或者更简单地说,由于
Double
通常根本不缓存:# 4 楼答案
必须创建两个整数对象,例如:
因为
x
和y
是对象,没有顺序类型,所以会得到一个无限循环