我对此有点新意但是?谁能纠正我的第一个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;
}
}
}
答案 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)
您没有将案例检查为字符串(您将输入声明为字符串)。您正在调用名为a
,b
等的变量。请尝试将它们放入引号中,如case: "a"
中所示。