Switch Statement请帮帮我

时间:2014-03-13 04:15:15

标签: java switch-statement statements

我对此有点新意但是?谁能纠正我的第一个switch语句?我不知道用什么表达来启动案例a:

我甚至不确定起始声明是否正确

    import java.io.*;
    public class SwitchDemo {
    public static void main(String[] args) {


    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    String input= br.readLine();

    System.out.println("Press Enter");
    System.out.println("a.Hello: Asks the name of the user.");
    System.out.println("b.Array: Input elements and search for a specified key and prints a     message.");
    System.out.println("c.MagicSquare: Displays [7][7] magic square.");
    System.out.println("d.Bubble Sort: Alphabetically sorts 20 employees using bubble sort.");
    System.out.println("e.Selection Sort: Alphabetically sorts 20 employees using selection sort");
    System.out.println("f.Insertion Sort: Alphabetically sorts 20 employees using Insertion sort");
    System.out.println("g.Factorial: Run the Factorial application");
    System.out.println("h.Triangle: Run the Triangle application."); 
    System.out.println("i.MergeSort: Performs the mergesort of a two class databasse.");
    System.out.println("j.Stack_1: Perform reversal of string.");
    System.out.println("k.Stack_2: Perform Infix Notation");
    System.out.println("l.Postfix: Perform Postfix Notation");
    System.out.println("m.Linked List");
   System.out.println("n.Queue:");
   System.out.println("o.Exit:");

        switch (input) {
            case a:

            String usersName;     
           String upperCaseName;  

           TextIO.put("Please enter your name: ");
           usersName = TextIO.getln();

           upperCaseName = usersName.toUpperCase();

           TextIO.putln("Hello, " + upperCaseName + ", nice to meet you!");


                     break;
            case b: 
        // Code for b execution here. Run array.
                     break;
            case c:  
        // Code for c execution here. magicsquare.
                     break;
            case d: 
        // Code for d execution here. Bubble sort.
                     break;
            case e:  
        // Code for e execution here. selection sort.
                     break;
            case f: 
        // Code for f execution here. insertion sort.
                     break;
            case g:  
        // Code for g execution here. recursion.
                     break;
            case h:  
        // Code for h execution here. mergesort.
                     break;
            case i:  
        // Code for b execution here. stack1.
                     break;
            case j: 
        // Code for b execution here. stack2.
                     break;
            case k: 
        // Code for b execution here. link list.
                     break;
            default: 
        System.out.println("Please input selection from a-o");
                     break;
        }

    }
}

3 个答案:

答案 0 :(得分:1)

这里有几点

案例陈述是这样的(前1.7)

char input = 'a';

switch (input) {
case 'a':
    break;
default :
    System.out.println("default");

}

对于Java 1.7及更高版本,您也可以打开字符串

String input = "a";

switch (input) {
case "a":
    printHelloUser();
    break;
default :
    System.out.println("default");

}

void printHelloUser () {
       String usersName;     
       String upperCaseName;  

       TextIO.put("Please enter your name: ");
       usersName = TextIO.getln();

       upperCaseName = usersName.toUpperCase();

       TextIO.putln("Hello, " + upperCaseName + ", nice to meet you!");


}

在阅读她的输入之前,您可能还想先考虑prompting用户。

答案 1 :(得分:1)

正如其他人所说,使用

switch(input) {
    case "a":
        // do stuff
        break;
    case "b":
        // do more stuff
        break;
}

会奏效。 另外一件事,如果你在java 7(java -version)中工作,你应该能够摆脱

BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

并将其替换为

Scanner in = new Scanner(System.in);
String input = in.nextLine();

至少对我来说这更容易使用。只需导入

import java.util.Scanner;

答案 2 :(得分:0)

您没有将案例检查为字符串(您将输入声明为字符串)。您正在调用名为ab等的变量。请尝试将它们放入引号中,如case: "a"中所示。