2017-09-07 4 views
0

私はJavaを学んでいるので、スキャナクラスが1の整数に対してのみ動作し、Javaのコードでは別の数では動作しない理由を理解できません。例えば、ユーザーからは何も表示されません。 私はPlaceOrderメソッドとSellItemメソッドを完全に作ったと思いますが、ユーザーから2または3または4の入力を取っても結果は表示されません。私はItemクラスにPlaceOrderメソッドを作成し、そのメソッドを2というユーザの入力にもかかわらず呼びました。入力時に2を押すと、希望の結果が表示されません。Scannerクラスは1つの番号のためだけに働いています

メインクラス

import java.util.Scanner; 

public class ItemTest{ 

public static void main(String [] args) { 

    Item product = new Item("Wrench",15,15%10+15,"Craftsmen Tool",20,5,7); 
    Scanner scan = new Scanner(System.in); 
    System.out.println("Enter a Action"); 
    System.out.println("1:Show Item \n" + "2.Sell an Item\n" + "3.Place an Order \n" + "4.Quit"); 

    if (scan.nextInt()==1) { 

     System.out.println(product.toString()); 
    } 
    if (scan.nextInt()==2) { 

     System.out.println(product.SellItem()); 
    } 
    if (scan.nextInt()==3) { 

     System.out.println(product.PlaceOrder()); 
    } 
    if (scan.nextInt()==4) { 

     System.out.println("Thankyou for your visit"); 
    } 
} 
+0

ここでの問題は、最初に値を入力するときは最初に_scan.nextInt()_でチェックし、2回目に_scan.nextInt()_ – KC7

答えて

1

試み、これを変更:期待場合

if (scan.nextInt()==1) { 

    System.out.println(product.toString()); 
} 

if (scan.nextInt()==2) { 

    System.out.println(product.SellItem()); 
} 
if (scan.nextInt()==3) { 

    System.out.println(product.PlaceOrder()); 
} 
if (scan.nextInt()==4) { 

    System.out.println("Thankyou for your visit"); 
} 

さもなければ

int choice = scan.nextInt(); 
if (choice ==1) { 

    System.out.println(product.toString()); 
} else if (choice ==2) { 

    System.out.println(product.SellItem()); 
} else if (choice==3) { 

    System.out.println(product.PlaceOrder()); 
} else if (choice==4) { 

    System.out.println("Thankyou for your visit"); 
} 

に、それぞれ、/別の入力を待ちます。

+0

にお返事ありがとう@Stultuske! – Aniruddh

+0

またはuは_ breakステートメント_を使用できます。 – KC7

関連する問題