2014-10-08 10 views
0

我有一個程序,要求用戶輸入1到6之間的值。但是,如果他們之間沒有問這個範圍,我希望程序要求用戶再次輸入。我在方法中有其他代碼,所以我不能指向方法。用if語句指向程序中的特定行? Java

System.out.print("Now enter a number between 1 and 6 "); 
     dieNumber = keyboard.nextInt(); 

     if (dieNumber == 1){   
      drawOne(pane); } 
     else if (dieNumber == 2){ 
      drawTwo(pane); } 
     else if (dieNumber == 3){ 
      drawThree(pane);} 
     else if (dieNumber == 4){ 
      drawFour(pane); } 
     else if (dieNumber == 5){ 
      drawFive(pane); } 
     else if (dieNumber == 6){ 
      drawSix(pane); } 
+4

你試圖用'while'循環包含的代碼片段?似乎它應該對我有用。 – Keppil 2014-10-08 21:57:28

+0

@Keppil是的,但在一天結束時,我仍然需要一些說,如果它不在該範圍之間,再次運行它。 – John 2014-10-08 22:05:02

+2

這就是'while'循環的意思, – AntonH 2014-10-08 22:05:29

回答

1

只是需要做while循環再次在用戶每次輸入的數字大於6

System.out.print("Now enter a number between 1 and 6 "); 
 
\t \t 
 
\t \t dieNumber = keyboard.nextInt(); 
 
\t \t while (dieNumber > 6){ 
 
\t \t \t System.out.print("Now enter a number between 1 and 6 "); 
 
\t \t \t dieNumber = keyboard.nextInt(); 
 
\t \t } 
 
\t \t if (dieNumber == 1){ \t \t 
 
\t \t \t drawOne(pane); \t } \t 
 
\t \t else if (dieNumber == 2){ 
 
\t \t \t drawTwo(pane); \t } 
 
\t \t else if (dieNumber == 3){ 
 
\t \t \t drawThree(pane); \t } 
 
\t \t else if (dieNumber == 4){ 
 
\t \t \t drawFour(pane); \t } 
 
\t \t else if (dieNumber == 5){ 
 
\t \t \t drawFive(pane); \t } 
 
\t \t else if (dieNumber == 6){ 
 
\t \t \t drawSix(pane); }
時間問

0

我只是如果選擇號碼添加whilebreak;那你想,break將打破除此之外的while循環,它會要求用戶輸入另一個號碼。

while(true){ 
    System.out.print("Now enter a number between 1 and 6 "); 
    dieNumber = keyboard.nextInt(); 
    if (dieNumber == 1){   
     drawOne(pane); break;} 
    else if (dieNumber == 2){ 
     drawTwo(pane); break;} 
    else if (dieNumber == 3){ 
     drawThree(pane);break;} 
    else if (dieNumber == 4){ 
     drawFour(pane); break;} 
    else if (dieNumber == 5){ 
     drawFive(pane); break;} 
    else if (dieNumber == 6){ 
     drawSix(pane); break;} 
} 
1

另一種解決方案,它不需要添加break;或任何其他重複的代碼到每個路徑:

boolean needToTryAgain; 
do { 
    needToTryAgain = false; 
    System.out.print("Now enter a number between 1 and 6 "); 
    dieNumber = keyboard.nextInt(); 

    if (dieNumber == 1){   
     drawOne(pane); } 
    else if (dieNumber == 2){ 
     drawTwo(pane); } 
    else if (dieNumber == 3){ 
     drawThree(pane);} 
    else if (dieNumber == 4){ 
     drawFour(pane); } 
    else if (dieNumber == 5){ 
     drawFive(pane); } 
    else if (dieNumber == 6){ 
     drawSix(pane); } 
    else { 
     // this would be a good place to print an error message 
     needToTryAgain = true; 
    } 
} while (needToTryAgain);