javaのif分についての質問です。
まず以下のようにProductクラスのインスタンスを生成します
App.java
1 Product riceball = new Product("s", 98, 150); 2 3 4 Product[] productsList = new Product[1]; 5 6 productsList[0] = riceball; 7 8
Productクラスは以下のように書いています。
Product.Java
1Product(String productName,int expDate , int price){ 2 this.productName = productName; 3 this.expDate = expDate; 4 this.price = price; 5 } 6 7 public String getName() { 8 return this.productName; 9 }
次にスキャナーで商品名の入力を受け取ります
App.java
1 Scanner sc = new Scanner(System.in); 2 System.out.print("商品名を入力してください:"); 3 String enterdProdactName = sc.nextLine(); 4 String productName; 5
このとき、入力されたenterdProdactNameが、productsList[i].getName();と一致するか否かで分岐させたいです。
ここでif分を以下のように書き、コンソールで"s" を入力したところ、userSelectとproductNameはどちらも
"s"のはずなのに、ifの条件がtrueになりませんでした。
なぜtrueにならないのでしょうか?
if("s" == productName)と書いたところtrueになり
if(userSelect == "s")と書いたところfalseになったので、
スキャナーの受け取りか、
String userSelect = enterdProdactName;
この部分でなにかしらの不具合があると思うのですが、
なにが間違っているかわかりませんでした。
どこが原因なのでしょうか?
App.java
1for(int i = 0 ; i<6 ;i++){ 2 productName = productsList[i].getName(); 3 String userSelect = enterdProdactName; 4 5 if(userSelect == productName){ 6 System.out.print("test"); 7 }else{ 8 System.out.print("error"); 9 } 10 }
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/05/02 02:54