您好,我目前是Java的初学者。下面的代码是一个while循环,它将继续执行,直到用户输入“yes”以外的内容。有没有办法让扫描仪接受多个答案?例如。是的,y,当然,test1,test2等。
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
String ans = "yes";
while (ans.equals("yes"))
{
System.out.print("Test ");
ans = in.nextLine();
}
}
}
答案 0 :(得分:1)
在表达式中使用或运算符
while (ans.equals("yes") || ans.equals("sure") || ans.equals("test1"))
{
System.out.print("Test ");
ans = in.nextLine();
}
但是如果要包含更多选项,最好提供一个将输入作为参数的方法,如果输入被接受,则计算并返回True。
答案 1 :(得分:0)
不要将用户输入与值作为循环条件进行比较?!
分别:将循环条件更改为
while(! ans.trim().isEmpty()) {
换句话说:在用户输入任何内容时保持循环(因此当用户刚进入时循环停止)。
答案 2 :(得分:0)
您正在寻找一种方法来检查给定字符串是否包含在字符串值列表中。有不同的方法可以实现这一点,一种方法是使用ArrayList
contains()
方法来检查您的用户输入in
是否出现在“正面”的列表中。您已定义的答案。
使用ArrayList
,您的代码可能如下所示:
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
ArrayList<String> positiveAnswers = new ArrayList<String>();
positiveAnswers.add("yes");
positiveAnswers.add("sure");
positiveAnswers.add("y");
Scanner in = new Scanner(System.in);
String ans = "yes";
while (positiveAnswers.contains(ans))
{
System.out.print("Test ");
ans = in.nextLine();
}
}
}