否则如果和大括号

else if & curly brackets

本文关键字:如果      更新时间:2023-10-16

为什么这两个代码片段有不同的输出?

它们之间的唯一区别是每个if/else-if语句周围的大括号,但这在这里应该无关紧要,对吧?

while (1){
if (i>=n&&j<0)
break;
else if (j<0)
if (Arr[i])
c++;
else if (i>=n)
if(Arr[j])
c++;
else if (Arr[i]==1&&Arr[j]==1)
c+=2;
i++;
j--;
}

..

while (1){
if (i>=n&&j<0){
break;
}
else if (j<0){
if (Arr[i])
c++;
}
else if (i>=n){
if(Arr[j])
c++;
}
else if (Arr[i]==1&&Arr[j]==1){
c+=2;
}
i++;
j--;
} 

如果第一个代码片段的格式正确

while (1){
if (i>=n&&j<0)
break;
else if (j<0)
if (Arr[i])
c++;
else if (i>=n)
if(Arr[j])
c++;
else if (Arr[i]==1&&Arr[j]==1)
c+=2;
i++;
j--;
}

然后可以看到 else 或 else if 对应于最接近的 if 语句。

相关文章: