虽然循环不在java中循环

时间:2016-03-12 15:46:35

标签: java

我在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);

4 个答案:

答案 0 :(得分:3)

你不做

mysqlStatus.equals(false)

在java中。不确定会做什么。

你需要做

(!mysqlStatus)

检查条件。

答案 1 :(得分:0)

来自here

  

java.lang.Boolean.equals(Object obj)返回true当且仅当   参数不是null,而是一个Boolean对象,表示   与此对象相同的布尔值。

现在false是一个原始boolean字面值(可以是truefalse而不是Boolean对象。Boolean对象可以是truefalseNULL

那么,当你这样做时会发生什么:

mysqlStatus.equals(false)

您是将Boolean对象mysqlStatusboolean原始文字false(而不是Boolean对象与false值进行比较),因此总是返回false(因为mysqlStatusBoolean不是false对象,因此您永远不会输入{{1}循环。

执行此操作以比较while mysqlStatusfalse对象的对象:

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,则会出现一个对话框并要求重试或退出。

现在一切正常。这是一个奇怪的问题,但感谢大家尝试提供帮助!我的代码中存在多个错误。