2017-09-07 1 views
0

Ich lerne Java und kann nicht herausfinden, warum die Scanner-Klasse funktioniert nur für die Nummer 1 Integer und nicht für eine andere Nummer in meinem Java-Code. Zum Beispiel, wenn ich die Antwort als 2 vom Benutzer zeigt es nichts. Ich denke, ich habe die PlaceOrder und SellItem Methode perfekt gemacht, aber die Eingabe als 2 oder 3 oder 4 vom Benutzer zeigt keine Ergebnisse. Ich habe eine PlaceOrder-Methode in der Item-Klasse erstellt und diese Methode aufgerufen, obwohl der Benutzer den Wert 2 eingegeben hat. Wenn Sie 2 zum Zeitpunkt der Eingabe drücken, wird das gewünschte Ergebnis nicht angezeigt.Scanner-Klasse funktioniert nur für 1 Nummer

Hauptklasse

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

Das Problem hier ist, wenn Sie erstmals Wert eingeben, wird es mit ersten _scan.nextInt() _, und zweiten Mal Sekunde überprüfen _scan.nextInt() _ – KC7

Antwort

1

versuchen und diese ändern:

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"); 
} 

zu

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"); 
} 

anders, jeder, wenn erwartet/wartet auf einen anderen Eingang.

+0

Dank @Stultuske! – Aniruddh

+0

oder Sie können _switch statement_ verwenden, wenn Sie den ** break ** nicht vergessen ** – KC7