0

クラスとOOPを学ぶための簡単な銀行口座プログラムを作ろうとしています。ご想像のとおり、私は Java の初心者です。

とにかく、私のスイッチステートメントは機能していません。入力された文字列に基づいて各ケースを作成しようとしています。

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

ステートメントが欠落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 に答える
1

Strings以上を使用している場合はswitchステートメントで使用できますがJava 7、そうでない場合は使用できません

于 2014-01-03T22:40:52.230 に答える