-6 c if-statement nested-if logical-operators logical-and
if (x>0 && x<6)
{
break;
}
else if(x>6)
{
break;
}
Run Code Online (Sandbox Code Playgroud)
相对
if (x>0)
{
if (x<6)
{
break;
}
}
else
{
if (x>6)
{
break;
}
}
Run Code Online (Sandbox Code Playgroud)
代码 1 不起作用,但代码 2 起作用。为什么?我是编程方面的超级菜鸟,所以请提供任何帮助。编程语言是C。
第二个代码片段中的 else 语句永远无法控制 的任何正值,x因为第一个 if 语句的条件立即计算为逻辑真。
if (x>0) {
if (x<6)
{
break;
}
}
else {
if (x>6)
{
break;
}
}
Run Code Online (Sandbox Code Playgroud)
x在第一个代码片段中,else 语句将获得对任何等于或大于 6的值的控制。
即 ifx等于7then 第一个 if 语句中的条件
if (x>0 && x<6)
{
break;
}
Run Code Online (Sandbox Code Playgroud)
评估结果为逻辑假。因此 else 语句获得了控制权,并且 if 子语句的条件也计算为逻辑 true。
else if(x>6)
{
break;
}
Run Code Online (Sandbox Code Playgroud)