2017-01-25 3 views
0

Für Datenstrukturen und Algorithmen in Java-Klasse wurde mir zugewiesen, ein Programm zu erstellen, das Benutzereingaben für den Namen und Preis eines Elements nimmt und dann den Preis mittelt. Ich habe das erfolgreich gemacht, jedoch habe ich eine Menge Probleme mit einer bestimmten Spezifikation für das Programm: eine Sentinel-Nummer (-1), die das Projekt beendet. Hier ist mein Code, ich werde erklären, worum es geht.Sentinel-Nummer in if-Anweisung

while(true){ 
     System.out.print("Enter item " + (count + 1) + " name: "); // enter name 
     names[count] = in.next(); // next string becomes count index 
     System.out.print("Enter item " + (count + 1) + " price: "); // enter price 
     prices[count] = in.nextDouble(); // stores price entered as array index 
     if(prices[count] == -1) break; // if next price == -1 // the code i want to change. 
     if(names[count].equalsIgnoreCase("peas")) flag = true; 
     average += prices[count]; 
     count++; 
    } 

Also, meine Frage ist: Ich möchte das Programm beenden, wenn ich -1 für den Artikelnamen eingeben, müssen einen „Dummy“ Elementname nicht eingeben und dann die Sentinel-Nummer eingeben müssen (-1).

Entschuldigung für die lange Erklärung, nur versuchen, gründlich zu sein. Danke, dass Sie sich die Zeit genommen haben, dies zu lesen und einem Programmierer hoffnungsvoll zu helfen.

Antwort

1

Sie müssen eine String für Ihren Vergleich verwenden (aber "-1" wird tun). Mach es auch sofort, nachdem du die Eingabe erhalten hast. Etwas wie,

names[count] = in.next(); 
if (names[count].equals("-1")) { 
    break; 
} // ... 
+0

DANKE !!! +1 – MonkeyWithMachine

+1

@MonkeyWithMachine die +1 kann durch Annahme der Antwort dargestellt werden. Dadurch werden andere darüber informiert, dass das Problem gelöst ist. –