2011-06-08 132 views
0

如何在用戶輸入0時結束do-while循環?結束這個do-while循環?

該計劃將繼續執行,如果用戶輸入F,G,H和J 如果用戶輸入0

import java.util.Scanner; 

public class P4Q5 { 

    /** 
    * @param args the command line arguments 
    */ 
    public static void main(String[] args) { 


     Scanner sc = new Scanner(System.in); 
     System.out.println("\nMain Menu: \n" + 
       "Enter 0 to exit program\n" + 
       "Enter F to display Faith\n" + 
       "Enter G to display Grace\n" + 
       "Enter H to display Hope\n" + 
       "Enter J to display Joy\n"); 



     do { 
      System.out.print("Enter your choice:"); 
       String s = sc.nextLine(); 
      char ch = s.charAt(0); 
      if ((ch == 'F')) { 
       System.out.println("\nFaith\n"); 
      } 

      else if ((ch == 'G')) { 
       System.out.println("\nGrace\n"); 
      } 

      else if ((ch == 'H')) { 
       System.out.println("\nHope\n"); 
      } 

      else if ((ch == 'J')) { 
       System.out.println("\nJoy\n"); 
      } 



      else { 
       System.out.println("\nWrong option entered!!\n"); 
      } 

     } while (ch == 'O'); 

       // TODO code application logic here 
    } 

} 

回答

1

試試這個在你做方案將退出,而:

if(ch == '0') break; 
+0

如果你能避免它,破壞是一個壞習慣。 – bitmask 2011-06-08 09:59:44

+0

感謝它的工作! :DD – user788949 2011-06-08 10:55:03

+0

@ user788949:當輸入不是「O」時,你的循環總是會中斷,那麼可疑的while-condition'ch =='O''怎麼辦?我的意思是,如果它仍然被你的規格所破壞,它怎麼能起作用? – 2011-06-08 12:05:11

2

while (ch != '0')而不是while (ch == 'O')?請注意0​​和O之間的區別?

+0

或者你可以使用while(true)和break ch == 0,但這也是正確的 – RubenHerman 2011-06-08 10:00:50

1

試試這個:

/** 
* @param args the command line arguments 
*/ 
public static void main(String[] args) { 
Scanner sc = new Scanner(System.in); 
System.out.println("\nMain Menu: \n" + 
     "Enter 0 to exit program\n" + 
     "Enter F to display Faith\n" + 
     "Enter G to display Grace\n" + 
     "Enter H to display Hope\n" + 
     "Enter J to display Joy\n"); 



do { 
    System.out.print("Enter your choice:"); 
     String s = sc.nextLine(); 
    char ch = s.charAt(0); 
    if ((ch == 'F')) { 
     System.out.println("\nFaith\n"); 
    } 

    else if ((ch == 'G')) { 
     System.out.println("\nGrace\n"); 
    } 

    else if ((ch == 'H')) { 
     System.out.println("\nHope\n"); 
    } 

    else if ((ch == 'J')) { 
     System.out.println("\nJoy\n"); 
    } 

    else if ((ch == 'O')) { 
     System.exit(); 
    } 

    else { 
     System.out.println("\nWrong option entered!!\n"); 
    } 

} while (ch == 'F' || ch == 'G' || ch == 'H' || ch == 'J' || ch == 'O'); 

     // TODO code application logic here 

}

要退出程序,你需要做的System.exit()的

要退出循環不作爲@bitmask說

0

我會用一個布爾變量,如果你輸入0布爾值變爲true,然後檢查布爾值...

boolean bool = false; 
    do { 
     ... 

     if(input == '0') 
      bool=true; 
    } while (!bool); 

哦,之前我忘了,我也會做一個輸入之前的做,而一個在循環結束。像這樣,你的整個代碼在你點擊後不會再運行。

+0

除了「bool」不是一個好名字。最好使用像「done」或「exitRequested」這樣的描述性內容。 – 2014-08-31 12:48:37