true / false println方法中的布尔值

时间:2014-09-25 11:15:15

标签: java boolean println

public void run(){
    int x = 9; 
    int y = 9;

    println( "true or false = " + (x == y) );
    println("true or false = " + ( x < y) );
    prinltn("true or false = " + (x > y) );

}

在一个例子中,我的书使用println方法中的括号()来测试某些东西是真还是假。这是我第一次看到()在println方法中用作布尔测试。以前我曾想过用

之类的东西来解决这个问题
  if (x == y) {
     println("true or false = true");
  } else {
     println("true or false = false");
  }
  1. 在哪里可以找到println方法中有关boolean的更多信息?
  2. 一个比另一个更正确吗?我应该避免使用上面的一个例子吗?

6 个答案:

答案 0 :(得分:2)

  

还有一个比另一个更正确吗?

正确的并不是描述它的正确术语,因为它们都可以正常工作。唯一的区别是代码行。所以不行。两者都是对的。

  

我应该避免使用上面的一个例子吗?

不完全是这样,但我建议您尽量缩短代码,以便更容易维护,就像第一个一样。


至于那些println发生了什么,它只是一个简单的字符串连接:

println("true or false = " + (x == y) );
//       true or false =       true

答案 1 :(得分:1)

没有。不要回避。使用()。这不是关于println内部。它完全是关于字符串连接的。

只是为了进行更改,请尝试执行以下语句并检查结果。

println( "true or false = " + (x == y) );

println( "true or false = " +x == y) );

在下面的例子中,运算符优先级出现在图片中。

再次提到,为什么在print方法(x == y)中使用括号,括号具有高精度,因此它们内部的语句在评估整个表达式之前首先执行。

答案 2 :(得分:1)

当您测试某些内容是否为真时,该条件将成为布尔值(truefalse)。布尔值可以像其他类型(如int)一样分配和打印。所以,如果你把:

System.out.println("true or false = " + (x == y));

与做:

相同
boolean f = (x==y);
System.out.println("true or false = " + f);

与做:

相同
boolean f;
if (x==y) {
    f = true;
} else {
    f = false;
}
System.out.println("true or false = " + f);

答案 3 :(得分:1)

here()不用于布尔测试,它用于优先级。如果你没有使用()那么第一个x将转换为String然后你不能使用==字符串和整数

(incompatible operand types String and int)

为避免这种情况,我们必须使用()

(x == y) 

我建议你先举例说好,它减少行数。

println("true or false = " + (x == y) );

答案 4 :(得分:1)

第一个是可取的,因为它的代码行数相对较少,但这并不意味着另一个代码行不正确。 如果有的话,你想利用在x&amp;上完成的测试的布尔o / p 。要在代码中进一步使用,那么你将不得不去 - &gt;

boolean b=(x==y);

然后&#39; b&#39;从此可以重用

答案 5 :(得分:0)

试试这个:

String result = (x == y) ? "true" : "false";
System.out.println("true or false = " + result);