为什么这个基本的Java布尔表达式不起作用?

时间:2016-03-17 10:38:30

标签: java

为什么不用Java(v1.8)计算。对我来说似乎完全合乎逻辑......

<table class="table table-striped" id="datatable-editable">

    <thead>

        <tr>
                <th>Name</th>
                <th>Dept</th>
                <th>Salary</th>
                <th>Date</th>
                <th style="min-width: 80px;">Action</th>
            </tr>

    </thead>

    <tbody class="searchable">

        <tr class="gradeX">

            <td>Name</td>
            <td>IT</td>
            <td>USD 1200</td>
            <td>USD 1200</td>

            <td class="actions">

                <a href="#" class="hidden on-editing save-row"><i class="fa fa-save"></i></a>

                <a href="#" class="hidden on-editing cancel-row"><i class="fa fa-times"></i></a>

            </td>

        </tr>
        </tbody>
        </table>

输出消息:错误:java:不是声明

7 个答案:

答案 0 :(得分:12)

三元条件运算符必须返回一个值。第二和第三个操作数不能是不返回任何内容的语句。它们必须是返回值的表达式。

您可以将其切换为:

System.out.println(banana ? "True" : "False");

请注意,banana == true || false相当于banana == true,相当于bananabanana本身就是boolean类型。

答案 1 :(得分:2)

这个怎么样?

System.out.println(banana ? "true" : "false");

三元运算符始终必须返回我们正在打印的值。

另一种方法是仅使用if-else语句,但它并不漂亮。

if(banana)
    System.out.println("true");
else
    System.out.println("false");

答案 2 :(得分:2)

Java Language Specification §15.25说:

  

第二个或第三个操作数是编译时错误   表达式是一个void方法的调用。

最好这样试试:

System.out.println(banana ? "true" : "false");

答案 3 :(得分:2)

你想要的是

boolean banana = true;
System.out.println(banana ? "True" : "False");

? :运算符必须返回一个值,而println是void方法。它不仅可以满足您的需求,而且更加简洁。

请注意

banana == true

相同
banana

x || false

相同
x

除非您需要打印“True”而不是“true”,否则您可以

System.out.println(banana);

答案 4 :(得分:1)

您使用不当。

Java三元运算符(也称为条件运算符)的一个用途是将两个变量的最小(或最大)值分配给第三个变量,基本上替换Math.min(a,b)或Math.max (a,b)方法调用。这是一个将最少两个变量a和b分配给名为minVal的第三个变量的示例:

minVal = (a < b) ? a : b;

你可以这样做。

if(boolean)
   System.out.println("True");
else  
   System.out.println("False");

答案 5 :(得分:0)

我想因为Java不会允许这样的声明。

尝试使用if声明。

boolean banana = true;
if (banana == true || false) System.out.println("True"); else System.out.println("False");

答案 6 :(得分:0)

因为只有假香蕉:https://en.wikipedia.org/wiki/False_banana。没有任何一个“真正的”香蕉。您可能会想到“真正的车前草”,请参见https://en.wikipedia.org/wiki/True_plantains。将香蕉更改为false可以使您的代码再次适应生物学。