我不明白如何在单个if语句中设置多个布尔值,也不确定是否可行。我试图写出简单的测试代码进行实验,发现我更加困惑自己。
import java.util.Scanner;
boolean t = false;
boolean f = false;
boolean a = false;
System.out.println("Enter T or F");
Scanner scan = new Scanner(System.in);
String t_f = scan.nextLine();
if(t_f == "t"){
t = true;
a =false;
}
else if(t_f == "f"){
f = true;
a = true;
}
if(t = true){
System.out.println("true");
}
else if (f = true){
System.out.println("false");
}
else if(a = true){
System.out.println("test");
}
我发现如果输入“f”,则会打印“true”,这不应该发生,因为如果输入“f”,我将其设置为打印false。 (例如)我试图操纵if语句改变'else if'和'if'的使用,但是我没有成功。显然,我在这里错过了一个基本概念,如果有人能帮忙,我将非常感激。
答案 0 :(得分:3)
您需要使用==
进行boolean
比较(或原始日期类型)。 =
是赋值运算符。
if(t == true){
此外,由于其boolean
,您也不需要进行比较。
if(t){ // if requires a boolean so just using the boolean variable would do
使用equals()
方法进行字符串比较。带有字符串的==
比较对象引用。
if(t_f.equals("t")){
答案 1 :(得分:1)
使用str1.equals(str2)
to compare String
s。
if (t_f.equals("t"))
请记住 =
是赋值运算符。您应该使用==
来比较基本类型(int
,boolean
,float
,double
,...)。但由于if
语句需要布尔值作为条件,因此您可以简单地使用它:
if (t) // if (t == true)
...
if (!t) // if (t == false)