【发布时间】:2015-01-22 23:02:38
【问题描述】:
它编译,只是它没有初始化while (choice = false),所以无论输入ans,它都不会显示“无效输入,输入a,b,c:”并重申。
import java.util.Scanner;
public class Test
{
public static void main(String[] args)
{
Scanner kb = new Scanner(System.in);
String ans;
boolean choice;
System.out.print("Enter a, b, c: ");
ans = kb.nextLine();
choice = isValidChoice(ans);
while (choice = false)
{
System.out.print("Invalid input, enter a, b, c: ");
ans = kb.nextLine();
choice = isValidChoice(ans);
}
if (choice = true)
{
System.out.println("Your input was " + ans);
}
}
public static boolean isValidChoice(String choice)
{
if (choice.equalsIgnoreCase("a") || choice.equalsIgnoreCase("a")
|| choice.equalsIgnoreCase("a"))
{
return true;
}
else
{
return false;
}
}
}
【问题讨论】:
-
我想你可能想要
==而不是=。比较与分配。更好的是,您可以使用while (choice)检查是否为真或while (!choice)检查是否为假。 -
我注意到了另外一件事,但这不是问题的原因.. 您拥有所有三个选项。equalsIgnoreCase("a") .. 只是为了引起您的注意..
标签: java if-statement while-loop boolean return