-3

こんにちは、ユーザーが特定の数値を入力したときに行を出力しようとしています。ただし、別の番号を入力しても同じ行が表示され続けます。私は何を間違っていますか?

public class apples{
     public static void main(String args[]){
         int input1=1;
         int input2=2;
         int input3=3;
         int input4=4;
         System.out.println("Welcome to MK Supermarket");
         System.out.println("Four items are available for sale:");
         System.out.println("1.Flour 2.Crix 3.Juice 4.Cereal");
          Scanner sales = new Scanner (System.in);
         System.out.println("Press 1 for Flour, Press 2 for Crix, Press 3 for Juice, Press 4 for Cereal");

         int itemSelect=sales.nextInt();

         if(input1==1){
             System.out.println("You chose Flour");
             int price1=30;
         }
         else if(input2==2){
             System.out.println("You chose Crix");
             int price2=10;
         }
         else if(input3==3){
             System.out.println("You chose Juice");
             int price3=15;
         }
         else if(input4==4){
             System.out.println("You chose Cereal");
             int price4=25;
         }
         else{
            System.out.println("Invalid Entry");
         }

    }

}

これは私がこれまでに書いたコードです。そして、これは結果です:

Welcome to MK Supermarket
Four items are available for sale:
1.Flour 2.Crix 3.Juice 4.Cereal
Press 1 for Flour, Press 2 for Crix, Press 3 for Juice, Press 4 for Cereal
2
You chose Flour
4

3 に答える 3

0

itemSelect に保存したユーザー入力に対して何もしていません。

最初の if ステートメントは、1 にハードコーディングした input1 を 1 と比較します。これは常に true を返します。そして、残りをスキップすることになります。

于 2013-09-28T02:38:43.603 に答える
0

入力に従ってメッセージを表示したい場合は、次のように条件で入力変数を itemSelect に変更する必要があります。

int itemSelect=sales.nextInt();

 if(itemSelect==1){
     System.out.println("You chose Flour");
     int price1=30;
 }
 else if(itemSelect==2){
     System.out.println("You chose Crix");
     int price2=10;
 }
 else if(itemSelect==3){
     System.out.println("You chose Juice");
     int price3=15;
 }
 else if(itemSelect == 4){
     System.out.println("You chose Cereal");
     int price4=25;
 }
于 2013-09-28T02:41:21.543 に答える