我有一个编写简单的 Java 程序的任务:
我有两个整数a和b。如果a>10 and b<10
那么它应该打印出来&#34;平衡&#34;如果没有,则打印出来&#34;不平衡&#34;
我知道如何使用1变量进行此操作,但我不知道如何使用2变量。
以下是我尝试的内容:
public static void main(String args[]) {
int a = 1;
int b = 15;
if (a > 10 && b <= 10)
{
System.out.println("balanced");
}
else
{
System.out.println("unbalanced);
}
}
答案 0 :(得分:0)
使用&&
代替&
,使其符合逻辑and
而不是按位。{/ p>
如果你在(a > 10) && (b <= 10)
附近放置括号,你会发现它更清楚。
答案 1 :(得分:0)
由于存在语法错误,您的代码甚至无法编译。您可以按照以下方式纠正错误。
int a = 1;
int b = 15;
if (a > 10 & b <= 10) { // why <= by reading your question it should <
System.out.println("balanced");
} else {
System.out.println("unbalanced");
}
现在输出是unbalanced
。
现在让我们检查您的代码。你在这里使用&
(非短路)。这是不好的,因为总是非短路操作数评估表达式的两侧。
所以你应该使用&&
(短路)
int a = 1;
int b = 15;
if (a > 10 && b <= 10) {
System.out.println("balanced");
} else {
System.out.println("unbalanced");
}
non short circuit
有什么问题?
考虑遵循逻辑。
if(name!=null&name.getFirstName()=="same"){ // Now both side evaluate
}
name==null
会发生什么?name.getFirstName()
会给你NullPointerException
。如果您使用&&
短路,则可以使用此NPE
if(name!=null&&name.getFirstName()=="same"){ // if first case false not
evaluate second
}