是否可以有一个声明,如......
if(delco == 1 && heavy < 5)
System.out.println("The total cost of your delivery is: $" + OPT_ONE);
if(delco == 1 && heavy >= 5 && heavy <= 20)
System.out.println("The total cost of your delivery is: $" + OPT_TWO);
...还应用布尔逻辑来表达输出?像这样......
boolean overnight;
if(delco == 1 && heavy < 5) && (overnightShip == YES)
System.out.println("The total cost of your delivery is: $" + OPT_ONE + OVERNIGHT);
if(delco == 1 && heavy >= 5 && heavy <= 20) && (overnightShip == NO)
System.out.println("The total cost of your delivery is: $" + OPT_TWO);
我已尝试过此代码的一些变体,而我收到的错误表明它们是无与伦比的类型。我如何才能使它们具有可比性呢?
答案 0 :(得分:1)
你错过了一些括号,因为你的逻辑似乎没问题。它应该是,例如:
if ( (delco == 1 && heavy < 5) && (overnightShip == YES) )
...
注意外括号。
此外,假设您已将YES
定义为等于true
的布尔常量,这是多余的,因此:
if ( (delco == 1 && heavy < 5) && (overnightShip) )
...
在这种情况下,这些括号也是多余的,整个过程简化为:
if ( delco == 1 && heavy < 5 && overnightShip )
...
答案 1 :(得分:0)
只需使用布尔值:
if (delco == 1 && heavy < 5 && overnightShip)
将布尔“flag”变量与布尔常量进行比较是不好的样式 - 总是更喜欢按原样测试布尔值。
答案 2 :(得分:0)
Java中的布尔类型具有以下值:
true
false
不
YES
NO
除非你自己在某处定义了这些常量
所以你的代码应该是这样的:
(overnightShip == true)
(overnightShip == false)
甚至:
(overnightShip) // true
(! overnightShip) // false