2016-11-09 4 views
1

ich Java bin üben und wollte den Benutzer wählen, eine Option aus dem Array wie lassen: nur BisherBenutzer fragen, von Array wählen

String Food[] = {"Beans","Rice","Spaghetti"}; 

ich von Scanner weiß, aber das ist mein erstes Programm also weiß ich nicht viel von dem Thema.

Gibt es auch eine Möglichkeit, es zu drucken? neben tun:

System.out.println(Food[0]); //and so on 

für jeden einzelnen von ihnen.

Edit: keine Array-Liste.

+2

Hinweis: Das ist ein Array und keine ArrayList. – Keiwan

+0

BTW müssen Sie toString im Essen überschreiben .... –

Antwort

1

Sie die Array drucken können nicht ArrayList, indem Sie:

System.out.println(Arrays.toString(Food)); 

Es ausdrucken: [Beans, Rice, Spaghetti]

Wenn Sie über eine ArrayList sprechen, würden Sie tun müssen:

ArrayList<String> Food = new ArrayList<String>(); 

Food.add("Beans"); 
Food.add("Rice"); 
Food.add("Spaghetti"); 

Dann können Sie über die ArrayList Schleife und erstellen Sie Ihre eigenen String mit einem StringBuilder

Nach dem Lesen Ihres Kommentars, denke ich, haben Sie ein Problem bei der Strukturierung Ihres Programms. Ich werde dir dabei helfen. Grundsätzlich müssen Sie diese Schritte ausführen:

  1. Programm startet
  2. Programm gibt die verfügbaren Optionen im Menü
  3. Programm den Benutzer auffordert, eine der aufgelisteten Optionen wählen
  4. Benutzer eine Option wählt
  5. Das Programm wiederholt Schritt 3, nur wenn der Benutzer seiner Bestellung weitere Inhalte hinzufügen möchte.
  6. Wenn der Benutzer nichts anderes will, gibt das Programm die Gesamtkosten der Bestellung

Einige Ideen, wie dies den richtigen Weg zu erreichen:

  1. ich ein class verwenden würde um die Eigenschaften einer "Bestellung" einzukapseln. Zum Beispiel: Beschreibung, Name und Preis sind wichtige Dinge, die Sie pro Stück verfolgen können müssen.

  2. Wenn Sie nicht wissen, wie oft Ihr Programm ausgeführt wird, haben Sie zwei Möglichkeiten: Verwenden Sie eine do while Schleife oder eine while Schleife. Versuchen Sie, in einem Zustand zu denken, der Ihr Programm unendlich viele Male laufen lassen könnte, bis der Benutzer fertig ist. Innerhalb der Schleife könnten Sie eine sum Variable haben, in der Sie die Elemente verfolgen, die der Benutzer möchte.

  3. Es ist besser, den Überblick über die Elemente zu behalten, indem Sie einfach die Nummern Strings verwenden. Computer sind schneller auf diese Weise zu finden. Also, wenn Sie eine HashMap verwenden, um ein Datenbanksystem in Ihrem Programm zu verspotten, würde es es besser und schneller machen.Anstatt if else zu verwenden, um Ihren Fluss zu steuern, können Sie stattdessen switch verwenden.

Ich hoffe, das hilft.

+0

danke, es half mir mit dem Druckproblem, muss immer noch auf jemanden warten, um mich über Benutzereingaben aufzuklären. –

+0

Was versuchen Sie zu erreichen? Der 'Scanner' ist die Art nach Eingabe in einem Konsolenprogramm zu fragen. –

+0

Wenn Sie versuchen, den Benutzer zur Eingabe aufzufordern, sagen wir, wenn der Benutzer eine der Optionen auswählt, wird "if else" ausgeführt, um den Preis festzulegen, später berechnet er den Preis aller ausgewählten Artikel und Lieferkosten Darauf ziele ich zumindest ab. –

0

EDIT: Für eine effizientere Art und Weise die Inhalte des Arrays auszudrucken, verwenden Sie eine for-Schleife erweitert:

for(String f : Food) 
{ 
    System.out.println(f); 
} 

Dies ist das Gleiche wie:

for(int i = 0; i < Food.size(); i++) 
{ 
    System.out.println(Food[i]) 
} 

Wenn ich bin zu verstehen, was Sie versuchen, richtig zu tun, ich denke, das (Disclaimer ausreichen sollte, ist es schon eine Weile her, dass ich mit Scanner() gearbeitet habe:

public static void main(String[] args) 
{ 
    String[] food = {"Beans","Rice","Spaghetti"}; // Java standards are lowercase for variables and objects, uppercase for class names. 
    Scanner in = new Scanner(System.in); 

    System.out.println("What would you like to eat? Options:"); 
    for(String f : food) 
    { 
     System.out.println(f); 
    } 
    String response = in.next(); 

    boolean validEntry = false; 
    for(String f: food) 
    { 
     if(response.equalsIgnoreCase(f)) 
     { 
      validEntry = true; 
     } 
    } 

    if(validEntry) 
    { 
     System.out.println("You chose " + response); 
    } 
    else 
    { 
     System.out.println("Invalid entry. Please retry.") 
    } 
} 
+2

'für (String f: Essen [])' wäre nicht korrekt. Klammern entfernen –

Verwandte Themen