2016-07-31 17 views
1

Was ich hier geschehen möchte, ist die Benutzereingabe "start". Wenn die Benutzereingaben beginnen, muss das Programm ein zufälliges Wort aus dem Array geben und dann den Benutzer auffordern, "next" einzugeben. Wenn der Benutzer "next" eingibt, gibt das Programm ein anderes zufälliges Wort aus, dann fragt das Programm nach "next" wieder eingegeben werden und so weiter ... du bekommst die Idee.Ich möchte, dass meine Anweisung erneut ausgeführt wird, wenn die Bedingung false erfüllt ist

hier ist ein Code, dachte ich würde diesen Effekt produzieren, aber alle es tut, ist druckt „Typ starten ein kühles Wort, um zu sehen“ Benutzereingabe „Start“ und dann kehrt das Programm nichts.

Jeder Rat würde geschätzt werden und wenn Sie mir sagen könnten, warum mein Code dies tut, würde ich wirklich dankbar sein, weil auf diese Weise kann ich daraus lernen. Dank

hier ist der Code i schrieb:

import java.util.Scanner; 
import java.util.Random; 
public class Words { 
    public static void main(String[]args){ 


     Scanner scan = new Scanner(System.in); 
     String words[] = {"Iterate:","Petrichor:"}; 
     String input = ""; 

     System.out.println("type *start* to see a cool word"); 
     input = scan.nextLine(); 

     while(!input.equals("start")){ 
     String random = words[new Random().nextInt(words.length)]; 
     System.out.println(random); 
     System.out.println(); 
     System.out.println("type *next* to see another cool word"); 
     while(input.equals("next")); 
     } 
    } 
} 

Antwort

1

Sie möchten Ihre Eingabe in einer Schleife zu lesen wickeln:

import java.util.Scanner; 

import java.util.Random; 
public class Words { 
    public static void main(String[]args){ 
    Scanner scan = new Scanner(System.in); 
    String words[] = {"Iterate","Petrichor"}; 
    String input = ""; 

    while (!input.equals("start")) { 
     System.out.println("type *start* to begin"); 
     input = scan.nextLine(); 
    } 

    String random = (words[new Random().nextInt(words.length)]); 
    } 
} 

Beachten Sie, dass in Ihrem speziellen Beispiel die Schleife bedingte Arbeiten für Ihre if-Anweisung, so dass die if-Anweisung nicht benötigt wurde.

aktualisieren

Wenn Sie das Laufen, während der Benutzer tippt halten müssen neben Sie alles in ein tun .. while-Schleife, so führt sie mindestens einmal wickeln kann:

import java.util. Scanner;

import java.util.Random; 
public class Words { 
    public static void main(String[]args){ 
     Scanner scan = new Scanner(System.in); 
     String words[] = {"Iterate","Petrichor"}; 
     String input = ""; 
     do { 
     do { 
      System.out.println("type *start* to begin"); 
      input = scan.nextLine(); 
     } while (!input.equals("start")); 

     String random = (words[new Random().nextInt(words.length)]); 
     System.out.println("type *next* to repeat"); 
     input = scan.nextLine(); 
     } 
    } while (input.equals("next")); 
} 
+0

Danke Mann. funktioniert ziemlich gut. Ich habe wirklich nicht daran gedacht, das! Die While-Schleife prüft also, ob die Eingabe nicht "Start" ist. – CapnCoin

+0

Ich bin froh, dass Sie es hilfreich fanden, bitte markieren Sie diese Antwort wenn möglich. – valarauko

+0

so zu dieser Frage hinzufügen. Wenn ich möchte, dass dieser Benutzer "next" eingibt, um das gesamte Programm erneut auszuführen, wie würdest du das machen? – CapnCoin