0

私は Java プログラミングが初めてで、今、奇妙なケースに直面しています。確認変数を String 型に設定すると、ユーザー入力が保持されます。ユーザーが「はい」と入力した場合 プログラムは新しいユーザーを作成する必要がありますが、作成しませんでした。代わりに、「プロセスがユーザーによってキャンセルされました」という誤ったアラームが発生します。確認変数が正しく評価されていないようです。どんなアドバイスでも。ありがとう。

これは私のコードです(かなり単純ですが):

import java.util.Scanner;

public class CreateUser {
    public static void main(String[] args)
    {
        Scanner input = new Scanner(System.in);
        String firstName;
        String lastName;
        String confirmation;

        System.out.println("Create new user");
        System.out.print("Enter first name : ");
        firstName = input.nextLine();
        System.out.print("Enter last name : ");
        lastName = input.nextLine();

        System.out.println("Are you sure?");
        confirmation = input.nextLine();

        System.out.println(confirmation); // this line is to make sure that the variable value is "yes"

        if(confirmation == "yes")
        {
            Users newUser = new Users(firstName, lastName);
            System.out.printf("User %s %s has been created\n", firstName, lastName);
            System.out.println("Total active users now is :"+Users.getRegisteredUsers());
        }
        else
        {
            System.out.println("Process is canceled by user");
        }

        input.close();

    }
}

そして、これは出力です:

Create new user
Enter first name : fin
Enter last name : fin
Are you sure?
yes
yes
Process is canceled by user
4

1 に答える 1

2

使用する

if (confirmation.equals("yes")) {
}

それ以外の

if(confirmation == "yes")

.equals()2 つの文字列の値を比較します。==メモリ参照を比較して、それらが同じオブジェクトを指しているかどうかを確認します。 参考記事

于 2013-11-05T15:53:16.017 に答える