我需要知道是否:
return someBooleanRecursiveMethod(n) || someBooleanRecursiveMethod(n-1);
相当于:
if (someBooleanRecursiveMethod(n))
return true;
else if (someBooleanRecursiveMethod(n - 1))
return true;
return false;
如果有人能够快速解决这个问题,我将非常感激。
答案 0 :(得分:0)
它们不等价,因为someBooleanRecursiveMethod返回一个布尔值(推测),第一个表达式可以求值为false ||假的是假的。 除非您指定它,否则第二个表达式永远不会返回false。
if (someBooleanRecursiveMethod(n))
return true;
else if (someBooleanRecursiveMethod(n - 1))
return true;
else
return false;
在这种情况下,两个表达式都是相同的,应用于n或n的方法将返回true,否则,当两者都为false时返回false(与运算符相同的行为)。
答案 1 :(得分:0)
是的,当然,说||
与说OR是一样的。你的例子做了同样的事情,它只是将两个语句分开。它们基本上是一样的。
例如:
if (I like apples) {
System.out.println("I like a fruit")
} else if (I like bananas) {
System.out.println("I like a fruit")
}
现在,我可以通过两种方式清理这两行代码。我可以做一个switch语句,或者,我可以使用or运算符:
if (I like bananas OR I like apples) {
System.out.println("I like a fruit")
}
AKA
if (x = 7 || x = 8) {
System.out.println("Either 7 OR 8")
}
我提到的另一种方式叫做switch语句。它略高一些,但它只是说,
我有这个条件,我有多个选项,在这个选项上执行此操作
switch(x) {
case 6:
System.out.println("It is 6");
break;
case 7:
System.out.println("Either 7 OR 8")
break;
case 8:
System.out.println("Either 7 OR 8")
break;
case 9:
System.out.println("It is 9")
break;
}
基本上,最后你只是在做同样的事情。要么是在一行代码中完成所有操作,要么是将它拆分,并在多行代码中完成。如果您想要为每个输入输出特定输出,请将其拆分。否则,无论哪种方式都很好。