0

我正在尝试制作一个简单的银行账户程序来学习课程和 OOP。您可能猜到了,我是 Java 新手。

无论如何,我的 switch 语句不起作用。我试图根据输入的字符串来制作每个案例。

Scanner input = new Scanner(System.in);
System.out.println("Enter your name");
//the user enters "user1", "user2", or "user3".
String user = input.next();
//swtich time 
switch (user) {
    case "user1":
        System.out.println("Your balance is" + user1.balance);
        System.out.println("Your Account numer is" + user1.acctnum);
        //shows the balance and account number for user1
    case "user2":
        System.out.println("Your balance is" + user2.balance);
        System.out.println("Your Account numer is" + user2.acctnum);
    case "user3":
        System.out.println("Your balance is" + user3.balance);
        System.out.println("Your Account numer is" + user3.acctnum);
}
4

4 回答 4

3

您在每个案例的末尾 都缺少一个break语句。

case "user1":
    System.out.println("Your balance is" + user1.balance);
    System.out.println("Your Account numer is" + user1.acctnum);
    //shows the balance and account number for user1
    break;

没有break语句,所有这些语句都会被执行

文档

于 2014-01-03T22:39:49.390 回答
1

使用或以上可以使用Stringsinswitch语句Java 7,否则不能

于 2014-01-03T22:40:52.230 回答
1

您缺少break;语句,因此选择后的所有语句case都将被执行。

以下是[1]的示例switch-case

public class SwitchDemo {
  public static void main(String[] args) {

    int month = 8;
    String monthString;
    switch (month) {
        case 1:  monthString = "January";
                 break;
        case 2:  monthString = "February";
                 break;
        case 3:  monthString = "March";
                 break;
        case 4:  monthString = "April";
                 break;
        case 5:  monthString = "May";
                 break;
        case 6:  monthString = "June";
                 break;
        case 7:  monthString = "July";
                 break;
        case 8:  monthString = "August";
                 break;
        case 9:  monthString = "September";
                 break;
        case 10: monthString = "October";
                 break;
        case 11: monthString = "November";
                 break;
        case 12: monthString = "December";
                 break;
        default: monthString = "Invalid month";
                 break;
    }
    System.out.println(monthString);
  }
}

[1] http://docs.oracle.com/javase/tutorial/java/nutsandbolts/switch.html

于 2014-01-03T22:43:36.897 回答
1

您可以枚举字符串,然后使用 switch。

PS:请搜索一下,然后在此处发布问题;)您的问题与此类似(例如-那里有很多答案)

https://stackoverflow.com/a/338284/878170

于 2014-01-03T22:44:19.823 回答