2014-03-25 56 views
1

下面是我的代碼...我試圖讓一個倒數計時器。現在它正確地按照正確的順序倒計時。我試圖找出如何將代碼中的if語句,以便爲打印1分'秒,而不是1分'秒的Java如果/ for循環幫助

import java.util.Scanner; 

public class countdown { 

public static void main(String[] args) { 

    Scanner scan = new Scanner(System.in); 
    int minutes; 
    System.out.println("Please enter the timer countdown in minutes:"); 
    minutes = scan.nextInt(); 

    while (minutes < 1) { 
     System.out.print("Invalid entry: Enter 1 or more minutes: "); 
     minutes = scan.nextInt(); 
    } 
    for (int i = minutes - 1; i >= 0; i--) 

    { 
     for (int s = 59; s >= 1; s--) 

      System.out.println(i + " minutes, " + s + " seconds"); 
     System.out.println("The timer is done!"); 

    } 

} 

}

回答

0

只需添加一個if/else語句中有:

for (int i = minutes - 1; i >= 0; i--){ 
    String minute; 
    if(minutes == 1) 
     minute = " minute "; 
    else 
     minute = " minutes "; 

    for (int s = 59; s >= 1; s--){ 
     String seconds; 
     if(s == 1) 
      seconds = " second"; 
     else 
      seconds = " second"; 
     System.out.println(i + minute + s + seconds); 
    } 
} 

對方回答可能是更好的,但是它使用了一種不同的語法,使得所有這些代碼變成了一條短線。他們做基本相同的事情。

+0

這絕對作品爲我== 1分鐘,但我要如何合併的S == 1秒,而不是秒? – user3455588

+0

我試了下面,它只糾正了0秒,1秒的問題.. – user3455588

+0

@ user3455588我編輯了答案。 – leigero

1

這樣,

String minutes = i + (i > 1 ? " minutes" : " minute"); // put this line in outer loop 
String seconds = s + (s > 1 ? " seconds" : " second"); // and this line in inner loop 

System.out.println(minutes +", "+ seconds); 
+0

我認爲在外層而不是內層循環中定義分鐘是有意義的。 – a1ex07

+0

@ a1ex07啊.... –

0

這兩個if/else語句應該工作。

for (int s = 59; s >= 1; s--) 
    { 
     if (i == 1) 
      System.out.print(i + " minute, "); 
     else 
      System.out.print(i + " minutes, "); 
     if (s == 1) 
      System.out.println(s + " second"); 
     else 
      System.out.println(s + " seconds"); 
    } 
+0

感謝您的幫助...我正在嘗試其他,如果它不工作。 – user3455588