[英]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();
}
}
在displayHours
、 displayMinutes
和displaySeconds
方法中, 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.