当前位置: 首页 > 知识库问答 >
问题:

Java布尔不更新

公冶智刚
2023-03-14

首先,如果我搞砸了,很抱歉,这是我在这里的第一个问题。第二,对不起,我的代码很乱,我刚开始在学校学习java。

所以,我编写了一个计时器,从00:00:00上升到23:59:59。秒、分钟和小时使用内部和外部循环上升,然后每秒钟在控制台中打印一次。我有一个布尔值来检查值是否小于10。如果数字小于10,它会在数字前加上0,这样它就被打印为01:02:03而不是1:2:3。问题是,一旦值等于或大于10,程序就不会更新布尔值,打印010:011:012而不是10:11:12。有什么想法吗?

public class Clock {
    
    int seconds = 0;
    int minutes = 0;
    int hours = 0;
    boolean hoursLess10;
    boolean minutesLess10;
    boolean secondsLess10;
    String secondDisplay;
    String minuteDisplay;
    String hourDisplay;
    String timeDisplay;
    
    public static void main(String[] args) {
        Clock m = new Clock();
        m.startClock();
    }
    
    public void startClock() {
        try {
            for (int hourElapse = 0; hourElapse < 24; hourElapse++) {
                if (hours < 10) {
                    hoursLess10 = true;
                } else {
                    hoursLess10 = false;
                }
                
                for (int minuteElapse = 0; minuteElapse < 60; minuteElapse++) {
                    if (minutes < 10) {
                        minutesLess10 = true;
                    } else {
                        minutesLess10 = false;
                    }
                    
                    for (int secondElapse = 0; secondElapse < 60; secondElapse++) {
                        if (seconds < 10) {
                            secondsLess10 = true;
                        } else if (seconds >= 10) {
                            secondsLess10 = false;
                        }
                        displayTime();
                        Thread.sleep(1000);
                        seconds++;
                    }
                    
                    seconds = 0;
                    minutes++;
                }

                minutes = 0;
                hours ++;
            }
            hours = 0;
        } catch (Exception e) {
            
            System.out.println("error");
        }
        
        System.out.println(hoursLess10);
        System.out.println(minutesLess10);
        System.out.println(secondsLess10);
    }
    
    public boolean displaySeconds() {
        if (secondsLess10 = true) {
            /*secondDisplay = (String) "0" + seconds;*/
            System.out.println("0" + seconds);
        } else {
            /*secondDisplay = (String) "" + seconds;*/
            System.out.print(seconds);
        }
        
        return secondsLess10;
    }
    
    public boolean displayMinutes() {
        if (minutesLess10 = true) {
            /*minuteDisplay = (String) "0" + minutes;*/
            System.out.print("0" + minutes);
            System.out.print(":");
        } else {
            /*minuteDisplay = (String) "" + minutes;*/
            System.out.print(minutes);
            System.out.print(":");
        }
        
        return minutesLess10;
    }

    public boolean displayHours() {
        if (hoursLess10 = true) {
            /*hourDisplay = (String) "0" + hours;*/
            System.out.print("0" + hours);
            System.out.print(":");
        } else {
            /*hourDisplay = (String) "" + hours;*/
            System.out.print(hours);
            System.out.print(":");
        }
        
        return hoursLess10;
    }
    
    public void displayTime() {
        displayHours();
        displayMinutes();
        displaySeconds();
    }
}

共有1个答案

章稳
2023-03-14

在方法displayHours、displayMinutes和displaySeconds中。if条件中有错误。

当你想检查布尔变量时,你可以用两种方法。

// == ... 检查是否有相同的

// != ... 检查是否有不一样的地方

>

//做事

}

//如果布尔变量为true,则为false!无微不至

如果(分钟少){

//做事

}

 类似资料:
  • 我有一个数组,如果两个相邻的数被10除,它将返回true。现在它的回报总是假的。

  • 我有一个学校作业,要做一个程序,结果要么正确,要么错误。这关系到一年是否是闰年。目前的问题是,我使用的是公共静态布尔值,而不是公共布尔值。这是我的代码: 现在int年是2000年,但是规则是这样的:闰年是一年,可以除以4,除非这一年是一个新世纪的开始(1700, 1800, 1900.....)。所以即使你可以把1900除以4,你也不能把它除以400,所以这是错误的。所以再一次问一个问题:我需要做

  • 我注意到java有一个问题。它不能解析空值的布尔类。我知道它有静态方法,但它的签名声明它只接受,而不接受。 换句话说,它有以下签名: 但不是: 检查布尔值而不陷入NullPointerException的最佳方法是什么?

  • 我对Java编码非常陌生,我已经研究这个问题大约4天了。我正在做一个选择你自己的结局故事。当我到达第69行时,如果读者选择是,我希望系统重新开始故事,如果他们选择否,则结束程序。我不确定我是否正确地编码了while循环,或者我甚至可以使用中断;操作员就像我在使用它一样。对不起,我的代码太难看了,哈哈,我正在努力变得更好。感谢您的建议! }

  • 我被一件简单的事情困住了。我有一个名为“tags”的布尔值数组能够通过布尔值访问数组的每个元素对我来说很重要: 我传入trackTags数组并将布尔值赋给它(比如说[true,true,true,false])。因此,当我调用trackTags[0]时,我得到了“true”但是,当我打印“Energy”(能量)时,它应该与trackTags(0)相同,该值始终为false。我知道booleans

  • 问题内容: 尝试按照Apple文档(和教程化的)创建Launch Helper时,我似乎遇到了麻烦,原因是将Objective- C代码移植到Swift中…在此方面,谁的编译器再也不过分了案件。 该错误似乎始终是: 我尝试过在多个位置进行转换,以防万一我只是在处理一个多余的,古老的原语(由Obj- C或Core Foundation引入)而无济于事。 为了以防万一,我尝试投射响应: 产生错误: …