Java 使用Switch Case语句编写程序(使用字母ABCD not int)
我的代码是用if/else语句编写的,它正在工作,但我在使用switch语句编写代码时遇到了一个问题,因为我的变量和符号中似乎存在问题 你能指出哪里出了问题并帮我改正吗 下面是我的源代码Java 使用Switch Case语句编写程序(使用字母ABCD not int),java,string,switch-statement,conditional,Java,String,Switch Statement,Conditional,我的代码是用if/else语句编写的,它正在工作,但我在使用switch语句编写代码时遇到了一个问题,因为我的变量和符号中似乎存在问题 你能指出哪里出了问题并帮我改正吗 下面是我的源代码 import java.util.Scanner; import java.io.*; public class CourseCodeSWITCH { public static void main(String[] a) { Scanner in = new Scanner (S
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;
}
}
}
在
java7/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的标签。您使用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
}
关于,
“…我的变量和符号中存在问题”
——请澄清“问题…”的含义?错误消息?它不编译吗?请帮助我们。首先A、B、C等显然应该是变量,但它们没有在任何地方定义。我猜您想使用字符串“A”、“B”等@Hovercraft它不编译,错误消息是-symbol:variable E location:class CourseCodeSWITCH 5errors@Axl如果他坚持只使用一个字母“A”也可以,这甚至可以用于Java6@Axl是的,我想使用string,因为如果我放置case1,错误“int无法转换为字符串”appears@LanguidSquid我明白了……我的问题是,我没有像字母E中的“E”那样,在信中附上“E””“这就是问题所在。谢谢,它现在正在工作。。。万分感谢!:)@Marged jcreator pro版本4.50谢谢您的解释。我的老师实际上还没有把每件事都解释清楚。。就好像,我在这门课上只得到了不到15%的分数,但他给了我们太多的硬件,所以我只能通过网络和你们学到更多。。很抱歉,我不能检查你的,因为另一个先进来,所以我能做的就是给你的投票,尽管我不得不说你解释得很好。。非常感谢。