我在Java中的while循环不循环,即使布尔值仍为假(我认为?)。
如果我删除所有“ mysqlStatus = true ”,它仍然不想循环。我真的不明白这是怎么可能的,因为我永远不会将布尔值切换为“true”。
这可能是愚蠢的事情,所以提前感谢帮助:)。
循环:
transform.position =
transform.position +
new Vector3(
cam.transform.forward.x * WalkingSpeed * Time.deltaTime,
0, // add 0 to keep the y coordinate the same
cam.transform.forward.z * WalkingSpeed * Time.deltaTime);
答案 0 :(得分:3)
你不做
mysqlStatus.equals(false)
在java中。不确定会做什么。
你需要做
(!mysqlStatus)
检查条件。
答案 1 :(得分:0)
来自here:
java.lang.Boolean.equals(Object obj)返回
true
当且仅当 参数不是null
,而是一个Boolean
对象,表示 与此对象相同的布尔值。
现在false
是一个原始boolean
字面值(可以是true
或false
而不是Boolean
对象。Boolean
对象可以是true
,false
或NULL
)
那么,当你这样做时会发生什么:
mysqlStatus.equals(false)
您是将Boolean
对象mysqlStatus
与boolean
原始文字false
(而不是Boolean
对象与false
值进行比较),因此总是返回false
(因为mysqlStatus
与Boolean
不是false
对象,因此您永远不会输入{{1}循环。
执行此操作以比较while
mysqlStatus
与false
对象的对象:
Boolean
答案 2 :(得分:0)
除了像ClassNotFoundException这样的SQLException之外的任何异常都会被异常捕获并无休止地循环。 有电话休息等。
Boolean是基本类型boolean的对象包装类。
boolean mysqlStatusVastgesteld = false;
while (!mysqlStatusVastgesteld) {
答案 3 :(得分:0)
我通过制作一个检查状态的功能来修复它。
public Boolean checkStatus() {
try {
Class.forName(driver).newInstance();
Connection conTest = DriverManager.getConnection(host + dbName, username, password);
return true;
} catch (Exception e) {
// server offline
return false;
}
}
我还创建了一个运行此函数的while循环,直到它返回true。如果返回false,则会出现一个对话框并要求重试或退出。
现在一切正常。这是一个奇怪的问题,但感谢大家尝试提供帮助!我的代码中存在多个错误。