我听说你可以在字符串上使用开关,但我没有让它工作。在这种情况下,ToDo 将是用户输入字符串,但我的编译器告诉我"int 无法转换为字符串"。谁能告诉我我做错了什么?
class Comands {
public Comands () {}
public void doSomething (String toDo){
while (!(toDo.equals("quit"))) {
switch (toDo) {
case 1: toDo.equals("right");
System.out.println("go right");
break;
case 2: toDo.equals("left");
System.out.println("go left");
break;
}
}
}
}
就像@Hovercraft Full Of Eels提到的那样,您正在将您的字符串与case 1:
中的整数进行比较,这应该包含这样的字符串:
...
case "left":
// sysout();
break;
case "right":
// sysout();
break;
...
switch (toDo) {
case "right":
System.out.println("go right");
break;
case "left":
System.out.println("go left");
break;
}
注: 只有在 Java SE 7 及更高版本中,才能在 switch 语句的表达式中使用 String 对象。
更多信息在这里。