写多个 if
语句和写 if-else-if
语句有什么区别吗?
当我尝试用多个 if
语句编写程序时,它没有给出预期的结果,但使用 if-else-if
却可以。
条件是互斥的。
写多个 if
语句和写 if-else-if
语句有什么区别吗?
当我尝试用多个 if
语句编写程序时,它没有给出预期的结果,但使用 if-else-if
却可以。
条件是互斥的。
当你编写多个if语句时,由于这些语句相互独立,可能会有不止一个条件被判断为true。
当你编写单个if else-if else-if ... else语句时,只有一个条件可以被判断为true(一旦找到第一个被判断为true的条件,下一个else-if条件将被跳过)。
如果每个条件块都退出了包含if语句的块(例如通过从方法返回或从循环中断),则可以使多个if语句的行为类似于单个if else-if .. else语句。
例如:
public void foo (int x)
{
if (x>7) {
...
return;
}
if (x>5) {
...
return;
}
}
将具有与以下相同的行为:
public void foo (int x)
{
if (x>7) {
...
}
else if (x>5) {
...
}
}
但没有 return 语句时,当 x>5 和 x>7 同时为真时,它会有不同的行为。
是的,它有所不同:请查看if-then和if-then-else语句。
此外,您可以轻松测试它。
代码#1:
int someValue = 10;
if(someValue > 0){
System.out.println("someValue > 0");
}
if(someValue > 5){
System.out.println("someValue > 5");
}
someValue > 0
someValue > 5
当代码 #2:
int someValue = 10;
if(someValue > 0){
System.out.println("someValue > 0");
}else if(someValue > 5){
System.out.println("someValue > 5");
}
someValue > 0
正如您所看到的,代码 #2 永远不会进入第二个块,因为第一个语句 (someValue > 0) 的结果为 true
。
不完全相同。 if语句将检查所有条件。如果你写多个if语句,它会检查每个条件。 如果else if检查到满足条件的条件,它就会停止检查。一旦if / else if被满足,它就会退出该块。
if()
{
stmt..
}
else
{
stmt
}
if()
{
stmt
}
here compiler will check for both the if condition.
if(){
}
else if
{
}
else if
{
}
else if
{
}