2013-10-03 84 views
0

所以这里是我的程序主类。Java菜单循环无限重复

import java.util.Scanner; 
import java.util.Random; 
public class seu03 
{ 
public static void main (String[] args) 
{ 
int option = 0; 
option = seu03Methods.seu03Menu(); 
    while(option != 9) 
     { 
switch (option) 
    { 
    case 1: 
     seu02.calculator(); 
     break; 
    case 2: 
     seu03Methods.sentenceAnalysis(); 
     break; 
    case 3: 
     seu03Methods.rollDice(); 
     break; 
    case 4: 
     seu03Methods.bigMoney(); 
     break; 
    case 9: 
     System.out.println("Exiting seu03..."); 
     System.exit(0); 
     break; 
    default: 
     System.out.println("Invalid selection."); 
     break; 
    } 
      } 
} //end of main 
} //end of class 

而这是“方法”类。

import java.util.Scanner; 
    import java.util.Random; 
    public class seu03Methods 
{ 
    public static int seu03Menu() 
    { 
    int option = 0; 
    Scanner console = new Scanner(System.in); 
    System.out.println("-------------------------------------"); 
    System.out.println("|   Welcome to seu03!   |"); 
    System.out.println("|-----------------------------------|"); 
    System.out.println("| Choose an option below:   |"); 
    System.out.println("|         |"); 
    System.out.println("| 1. Calculator     |"); 
    System.out.println("| 2. Sentence Analysis    |"); 
    System.out.println("| 3. Roll a 6-sided die   |"); 
    System.out.println("| 4. Play Big Money!    |"); 
    //System.out.println("| 5. randomRange   |"); 
    //System.out.println("| 6. stubMethod   |"); 
    System.out.println("| 9. Exit       |"); 
    System.out.println("-------------------------------------"); 
    option = console.nextInt(); 
    return option; 
    } 
    public static void sentenceAnalysis() 
    { 
    Scanner console = new Scanner(System.in); 
    String userString = new String(""); 
    System.out.println("-------------------------------------"); 
    System.out.println("Please enter a sentence for analysis:"); 
    userString = console.nextLine(); 
    System.out.println("The sentence to analyze is: " + userString); 
    System.out.println("The sentence is " + userString.length() + " characters long."); 
    System.out.println("The first character of the sentence is " + userString.charAt(0)); 
    System.out.println("The middle charchter of the sentence is " + userString.charAt(userString.length()/2)); 
    System.out.println("The last character of the sentence is " + userString.charAt(userString.length()-1)); 
    System.out.println("Thanks for using our 1323 System!"); 
    System.out.println("-------------------------------------"); 
    return; 
    } //end of sentenceAnalysis 
    public static void rollDice() 
    { 
    Random gener = new Random(); 
    int die = 0; 
    System.out.println("-------------------------------------"); 
    System.out.println("Welcome to Roll Dice!"); 
    System.out.println("The program will now roll a single six-sided die."); 
    die = gener.nextInt(6) + 1; 
    System.out.println("Result: " + die); 
    System.out.println("Thanks for using our 1323 System!"); 
    System.out.println("-------------------------------------"); 
    return; 
    } //end of rollDice 
    public static void bigMoney() 
    { 
    Scanner console = new Scanner(System.in); 
    Random gener = new Random(); 
    int rnum = 0; 
    int guess1 = 0; 
    int guess2 = 0; 
    int guess3 = 0; 
    System.out.println("-------------------------------------"); 
    System.out.println("Welcome to Big Money!"); 
    rnum = gener.nextInt(10) + 1; 
    System.out.println("A whole number between 1 and 10 inclusive has been generated. You will have three chances to guess the number."); 
    System.out.println("Here is the random number for testing purposes: " + rnum); 
    System.out.println("What is your first guess?"); 
    guess1 = console.nextInt(); 
    if(guess1 == rnum) 
     { 
     System.out.println(" Big Money! You win $100!"); 
     } 
    else 
     { 
     System.out.println("No good! What is your second guess?"); 
     guess2 = console.nextInt(); 
      if(guess2 == rnum) 
      { 
      System.out.println("Medium Money! You win $50!"); 
      } 
      else 
       { 
       System.out.println("No good! What is your third guess?"); 
       guess3 = console.nextInt(); 
        if(guess3 == rnum) 
        { 
        System.out.println("Little Money! You win $1!"); 
        } 
         else 
         { 
         System.out.println("Sorry! You didn't win any money this time. Better luck next time!"); 
         } 
       } 
      } 
    System.out.println("Thanks for playing Big Money!"); 
    System.out.println("Thanks for using our 1323 System!"); 
    System.out.println("-------------------------------------"); 
    return; 
    } //end of bigMoney 
} //end of class 

如果让我选择一个选项,比如3,该选项将重复永远(直到我关闭命令行)。我周二错过了课程(感谢不要惊慌!),因此错过了我们的循环讲座。 :/如果有人可以提供一些援助(也许一些指针?),将不胜感激!我想要的只是选择一个选项,执行该方法中的内容,然后返回菜单选择另一种方法,直到用户选择“9”并退出。如果以后也需要摆脱可怕的嵌套。

回答

2

移动option = seu03Methods.seu03Menu();进入while循环(上下两行while(option != 9){..)你永远不会改变的循环option它,所以它始终是3

+0

啊。当然这会很简单。 *摇头*谢谢! – Levi

0
while(option != 9) 
     { 
switch (option) 
    { 
    case 1: 
     seu02.calculator(); 
     break; 
    case 2: 
     seu03Methods.sentenceAnalysis(); 
     break; 
    case 3: 
     seu03Methods.rollDice(); 
     break; 
    case 4: 
     seu03Methods.bigMoney(); 
     break; 
    case 9: 
     System.out.println("Exiting seu03..."); 
     System.exit(0); 
     break; 
    default: 
     System.out.println("Invalid selection."); 
     break; 
    } 
      } 

你永远不能得到你的情况:9,退出....因为while循环告诉它跳过开关,如果int是9(我假设会关闭应用程序)试着改变这个

while(option != 9)