此代码似乎完全正常,我(CS101),但我的IDE抛出了错误“此方法必须返回boolean类型的结果”正确的代码不会编译?
我不希望在如何简化我的代码或类似的东西任何提示只是想现在解决的原因/解决方案,为什么发生这种情况
public static boolean validation(String correct1, String correct2)
{
Scanner in = new Scanner(System.in);
boolean correctInput = false;
String userInput;
while (correctInput == false)
{
System.out.print("Type in " + correct1 + " or " + correct2);
userInput = in.next();
if (userInput.equals(correct1))
{
return true;
}else if (userInput.equals(correct2))
{
return false;
}else
{
System.out.println("Try again!");
}
}
}
问题,有兴趣的人,为什么我需要低于这个全码:
import java.util.*;
public class CheckingInput
{
public static void main(String args[])
{
System.out.println("What is 1+1?");
boolean answer = validation("two", "three");
if(answer == true)
{
System.out.print("Correct!");
}else if(answer == false)
{
System.out.print("Wrong!");
}
}
public static boolean validation(String correct1, String correct2)
{
Scanner in = new Scanner(System.in);
boolean correctInput = false;
String userInput;
while (correctInput == false)
{
System.out.print("Type in " + correct1 + " or " + correct2 + ": ");
userInput = in.next();
if (userInput.equals(correct1))
{
correctInput = true;
return true;
}else if (userInput.equals(correct2))
{
correctInput = true;
return false;
}else
{
System.out.println("Try again!");
correctInput = false;
}
}
return false;// Doesn't really matter, loop will never reach here
}
然后,它是不正确的。你的代码是否在**全**的情况下返回一个布尔值? –
在另一个说明中,为什么使用'=='而不是'.equals('用于字符串? – hexafraction
我想要做的是重复while循环,直到满足两个if语句中的一个并返回一个值?,而不是退出,直到他们,我要对这个错误的方式 – Chris