需要帮助了解布尔(设置和使用)

时间:2014-02-05 07:21:26

标签: java set boolean

我不明白如何在单个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'的使用,但是我没有成功。显然,我在这里错过了一个基本概念,如果有人能帮忙,我将非常感激。

2 个答案:

答案 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 Strings

if (t_f.equals("t"))

请记住 =是赋值运算符。您应该使用==来比较基本类型(intbooleanfloatdouble,...)。但由于if语句需要布尔值作为条件,因此您可以简单地使用它:

if (t) // if (t == true)
...
if (!t) // if (t == false)