簡體   English   中英

Java 布爾值不更新

[英]Java Booleans not updating

首先,對不起,如果我搞砸了,這是我的第一個問題。 其次,對不起我的亂碼,我剛開始在學校學習java。

因此,我編寫了一個從 00:00:00 到 23:59:59 的計時器。 秒、分和小時 go 向上使用內部和外部 for 循環,然后每秒在控制台中打印一次。 我有一個 boolean 檢查值是否小於 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();
    }
}

displayHoursdisplayMinutesdisplaySeconds方法中, if條件有錯誤。

當你想檢查 boolean 變量時,你可以通過兩種方式進行。

// == ... check if there are the same

// 1) != ... check if there are not the same

if (minutesLess == 10){
    //To Do Things
    }
    
// 2) if the boolean variable is true, for false it should be !minutesLess

if (minutesLess){
    //To Do Things
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM