错误的操作数类型错误
Bad operand types error
我在尝试向我正在处理的程序中添加输入验证时遇到此错误:
bad operand types for binary operator '||' first type: boolean; second type: java.lang.String
这是我的代码:
String x = scan.nextLine();
while (!x.toLowerCase().equals("buy a lamborghini")||("donate")||("do you know who i am")||("go sailing")||("drink fine wine")||("invest")||("gamble"))
{
System.out.println("Please choose a valid option");
}
while 条件
的 "donate" 部分周围突出显示了错误
问题是您正在尝试将 or
操作数与 String
和 boolean
一起使用
你想要的是这样的:
while (!(x.toLowerCase().equals("buy a lamborghini") ||
x.toLowerCase().equals("donate") ||
x.toLowerCase().equals("do you know who i am") ||
x.toLowerCase().equals("go sailing") ||
x.toLowerCase().equals("drink fine wine") ||
x.toLowerCase().equals("invest") ||
x.toLowerCase().equals("gamble")))
{
//...
}
我假设你正在制作某种冒险游戏——如果你想让这个更干净,你执行动作的循环应该看起来像这样:
if (x.toLowerCase().equals("buy a lamborghini"))
{
}
else if (x.toLowerCase().equals("donate"))
{
}
else if (x.toLowerCase().equals("do you know who i am"))
{
}
else if (x.toLowerCase().equals("buy a lamborghini"))
{
}
else if (x.toLowerCase().equals("go sailing"))
{
}
else if (x.toLowerCase().equals("drink fine wine"))
{
}
else if (x.toLowerCase().equals("invest"))
{
}
else if (x.toLowerCase().equals("gamble"))
{
}
else
{
System.out.println("Error! Invalid Input!");
}
另一个注意事项是 x.toLowerCase().equals(String str)
可以重构为 x.equalsIgnoreCase(String str)
。他们做同样的事情,但第二个可能更具可读性和更常用。
我在尝试向我正在处理的程序中添加输入验证时遇到此错误:
bad operand types for binary operator '||' first type: boolean; second type: java.lang.String
这是我的代码:
String x = scan.nextLine();
while (!x.toLowerCase().equals("buy a lamborghini")||("donate")||("do you know who i am")||("go sailing")||("drink fine wine")||("invest")||("gamble"))
{
System.out.println("Please choose a valid option");
}
while 条件
的 "donate" 部分周围突出显示了错误问题是您正在尝试将 or
操作数与 String
和 boolean
你想要的是这样的:
while (!(x.toLowerCase().equals("buy a lamborghini") ||
x.toLowerCase().equals("donate") ||
x.toLowerCase().equals("do you know who i am") ||
x.toLowerCase().equals("go sailing") ||
x.toLowerCase().equals("drink fine wine") ||
x.toLowerCase().equals("invest") ||
x.toLowerCase().equals("gamble")))
{
//...
}
我假设你正在制作某种冒险游戏——如果你想让这个更干净,你执行动作的循环应该看起来像这样:
if (x.toLowerCase().equals("buy a lamborghini"))
{
}
else if (x.toLowerCase().equals("donate"))
{
}
else if (x.toLowerCase().equals("do you know who i am"))
{
}
else if (x.toLowerCase().equals("buy a lamborghini"))
{
}
else if (x.toLowerCase().equals("go sailing"))
{
}
else if (x.toLowerCase().equals("drink fine wine"))
{
}
else if (x.toLowerCase().equals("invest"))
{
}
else if (x.toLowerCase().equals("gamble"))
{
}
else
{
System.out.println("Error! Invalid Input!");
}
另一个注意事项是 x.toLowerCase().equals(String str)
可以重构为 x.equalsIgnoreCase(String str)
。他们做同样的事情,但第二个可能更具可读性和更常用。