我想在这里发生的是让用户输入" start"。如果用户输入启动,程序必须从数组中提供一个随机字,然后要求用户输入" next",当用户输入" next"程序给出另一个随机单词,然后程序要求" next"再次输入等等......你明白了。
这里有一些代码,我认为会产生这种效果,但它所做的只是打印"输入 start 来查看一个很酷的单词" 用户输入"开始" 然后程序什么都不返回。
任何建议都会受到赞赏,如果你能告诉我为什么我的代码会这样做,我会非常感激,因为我可以从中学习。 感谢
这是我写的代码:
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"));
}
}
}
答案 0 :(得分:1)
您希望将输入读取包装在循环中:
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)]);
}
}
请注意,在您的特定示例中,循环条件适用于您的if语句,因此不需要if语句。
<强>更新强>
如果你需要在用户输入next时继续运行,你可以将所有内容包装在do .. while循环中,这样它至少会执行一次:
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") );
}