Java 是&&;下列等效代码的语句和嵌套条件?
如果x和y是int变量。对于x和y的所有值,以下两段Java代码在行为上是否等效?解释为什么,或者为什么不 第1版:Java 是&&;下列等效代码的语句和嵌套条件?,java,boolean,conditional,Java,Boolean,Conditional,如果x和y是int变量。对于x和y的所有值,以下两段Java代码在行为上是否等效?解释为什么,或者为什么不 第1版: if (x > 10) { if (y < 20) {System.out.print("hi"); } } if(x>10) { 如果(y10&&y
if (x > 10)
{
if (y < 20)
{System.out.print("hi");
}
}
if(x>10)
{
如果(y<20)
{系统输出打印(“hi”);
}
}
第2版:
if (x > 10 && y < 20)
{
System.out.print("hi");
}
if(x>10&&y<20)
{
系统输出打印(“hi”);
}
我认为这是等效的,但我只是想确保我没有遗漏任何东西。我看不出它们怎么可能是等价的。谢谢。是的,它们完全相同。在这种情况下,归根结底是选择你认为最清晰的一个。是的,它们是
重要的一点可能不是很明显,在两个版本中,第二个比较只有在第一个比较结果为“true”时才进行评估。是的,从语义角度来看,它们也是等价的。是的,它们是等价的,但第二个比较短,您可以添加一个
else
子句,在第一节中,您不能这样做,因为您必须在那里编写两个独立的else
子句
是否应该使用一个或两个else
子句取决于您的逻辑要求,因此这两种形式可能都是合适的
我通常会推荐第二个,但是如果你不需要一个单独的
else
子句,并且表达式很大,那么第一个可能会更具可读性。在这里,结果确实是一样的。是的,但是如果有很多嵌套的if,那么第一个很好&
不是一个语句,是接线员,短路点不错。很多人可能会错过这一点。