使用 Switch Case 语句编写程序(使用字母 ABCD 而不是 int)
Writing a program using Switch Case Statement (with the use of letters ABCD not int)
我的代码是用 if/else 语句编写的,它正在运行,但我在使用 switch 语句编写它时遇到问题,因为我的变量和符号中似乎存在问题。
能否请您指出错误并帮我改正?
下面是我的源代码。
import java.util.Scanner;
import java.io.*;
public class CourseCodeSWITCH {
public static void main(String[] a) {
Scanner in = new Scanner (System.in);
String code;
System.out.print("Enter Course Code: ");
code = in.nextLine();
switch (code) {
case A: code = "Accounting";
break;
case B: code = "Banking and Finance";
break;
case C: code = "Computer Science";
break;
case D: code = "Dentistry";
break;
case E: code = "Engineering";
break;
default:
System.out.println("Invalid Course Code");
break;
}
}
}
在 Java 7/8
中,您可以定义 String
来与 code
进行比较。在早期版本中,您可能希望使用 char
或 enum
.
public static void main(String[] a) {
Scanner in = new Scanner (System.in);
String code;
System.out.print("Enter Course Code: ");
code = in.nextLine();
switch (code) {
case "A":
code = "Accounting";
break;
case "B":
code = "Banking and Finance";
break;
case "C":
code = "Computer Science";
break;
case "D":
code = "Dentistry";
break;
case "E":
code = "Engineering";
break;
default:
System.out.println("Invalid Course Code");
break;
}
此外,这里还有来自 Oracle 的 example。
您使用 A、B、C 作为标签,但这不是 switch 语句的工作方式。让我们只看一个语句:
switch (code) {
case A: code = "Accounting";
break;
您正在打开 code
...这意味着您将检查 code
变量的内容。
接下来,您申报案件。在上面的例子中,你实际上是在说
if (code == A)
code = "Accounting";
break;
现在,这有几个问题。首先,A
没有在任何地方定义,所以你会立即 运行 进入编译时错误。您可能想改用字符串值 ("A"
)。其次,您只是重新分配 code
而不是像您在原始 if 语句中那样输出。
您可能想要一个看起来更接近于以下内容的开关:
switch(code) {
case "A":
System.out.println("Assignment");
break;
case "B":
System.out.println("Banking and Finance");
break;
// and so forth
}
我的代码是用 if/else 语句编写的,它正在运行,但我在使用 switch 语句编写它时遇到问题,因为我的变量和符号中似乎存在问题。
能否请您指出错误并帮我改正?
下面是我的源代码。
import java.util.Scanner;
import java.io.*;
public class CourseCodeSWITCH {
public static void main(String[] a) {
Scanner in = new Scanner (System.in);
String code;
System.out.print("Enter Course Code: ");
code = in.nextLine();
switch (code) {
case A: code = "Accounting";
break;
case B: code = "Banking and Finance";
break;
case C: code = "Computer Science";
break;
case D: code = "Dentistry";
break;
case E: code = "Engineering";
break;
default:
System.out.println("Invalid Course Code");
break;
}
}
}
在 Java 7/8
中,您可以定义 String
来与 code
进行比较。在早期版本中,您可能希望使用 char
或 enum
.
public static void main(String[] a) {
Scanner in = new Scanner (System.in);
String code;
System.out.print("Enter Course Code: ");
code = in.nextLine();
switch (code) {
case "A":
code = "Accounting";
break;
case "B":
code = "Banking and Finance";
break;
case "C":
code = "Computer Science";
break;
case "D":
code = "Dentistry";
break;
case "E":
code = "Engineering";
break;
default:
System.out.println("Invalid Course Code");
break;
}
此外,这里还有来自 Oracle 的 example。
您使用 A、B、C 作为标签,但这不是 switch 语句的工作方式。让我们只看一个语句:
switch (code) {
case A: code = "Accounting";
break;
您正在打开 code
...这意味着您将检查 code
变量的内容。
接下来,您申报案件。在上面的例子中,你实际上是在说
if (code == A)
code = "Accounting";
break;
现在,这有几个问题。首先,A
没有在任何地方定义,所以你会立即 运行 进入编译时错误。您可能想改用字符串值 ("A"
)。其次,您只是重新分配 code
而不是像您在原始 if 语句中那样输出。
您可能想要一个看起来更接近于以下内容的开关:
switch(code) {
case "A":
System.out.println("Assignment");
break;
case "B":
System.out.println("Banking and Finance");
break;
// and so forth
}