2015-09-27 18 views
3

我在java中製作時鐘,必須打印2位數字的分鐘數和2位數秒的秒數。我正在使用printf來嘗試打印這兩個值,但我不斷收到一個錯誤,指出「非法聲明」或「已完成」。我究竟做錯了什麼?嘗試使用printf打印秒數和分鐘的2位數,但我不斷收到錯誤

以下是我試圖實施並迄今爲止失敗的代碼。

public void printStandard() { 
    int hours; 

    if (hrs < 12) { 
     System.out.printf(hrs + ":" + mins + ":" + %2d + "AM", secs); 
    } else if (hrs > 12) { 
     hours=hrs-12; 
     System.out.printf(hours + ":" + mins + ":" + %2d+ "PM"), secs; 
    } else if (hrs == 12) { 
     System.out.printf(hrs + ":" + mins + ":" + %2d, secs + "PM"); 
    } 
} 

回答

2
public void printStandard(int hrs, int mins, int secs) { 
if (hrs < 12) { 
    System.out.printf("%02d:%02d:%02d AM%n", hrs, mins, secs); 
} else { 
    System.out.printf("%02d:%02d:%02d PM%n", hrs - 12, mins, secs); 
} 

打印兩位數。

2

格式出現在雙引號內。取而代之的

System.out.printf(hrs + ":" + mins + ":" + %2d + "AM", secs) 

我想你想要的東西,像

System.out.printf("%02d:%02d:%02d AM%n", hrs, mins, secs); 

另外,我想你想的參數傳遞給你的方法。你可以使用常規的else。喜歡的東西,

public void printStandard(int hrs, int mins, int secs) { 
    if (hrs < 12) { 
     System.out.printf("%02d:%02d:%02d AM%n", hrs, mins, secs); 
    } else { 
     System.out.printf("%02d:%02d:%02d PM%n", hrs - 12, mins, secs); 
    } 
} 
+0

進行了調整,只有1個值繼續打印。我故意沒有任何東西被傳遞,因爲我創建了一個使用此方法打印的對象。 –

相關問題