新手请教,C语言中为什么if if else的嵌套语句中,执行了第一个if第二个会不执行?(输出的答案是2) C语言中 当出现两个if语句 怎么看第二个if是嵌套的,还是...

\u4e3a\u4ec0\u4e48while\u8bed\u53e5\u4e2d\u5d4c\u5957\u7684if\u8bed\u53e5\uff0c\u6761\u4ef6\u7b26\u5408\u7b2c\u4e8c\u4e2aif\uff0c\u5374\u8fd8\u662f\u6267\u884c\u7b2c\u4e00\u4e2a\u8868\u8fbe\u5f0f\u5462\uff0c\u4e0d\u6267\u884c\u7b2c\u4e8c\u4e2a\u5462\uff1f

if(a=1) //\u4f60\u8fd9\u8fb9\u5199\u7684\u662f=\uff0c\u4e0d\u662f== \uff0c=\u662f\u8d4b\u503c\uff0c\u4e00\u5b9a\u6210\u529f\u7684
sum1++;
if(a=0) //\u8fd9\u8fb9\u4e5f\u662f
sum2++;

\u770b\u7b2c\u4e00\u4e2aif\u540e\u9762\u6709\u6ca1\u6709\u5206\u53f7
if()if();\u8fd9\u65f6\u5019\u5c31\u662f\u5d4c\u5957\u7684
if();if();\u8fd9\u65f6\u5019\u5c31\u662f\u5355\u72ec\u7684 \u8865\u5145\uff1a\u4e00\u822c\u4f7f\u7528\u65f6\uff1a
if(/*\u5224\u65ad\u6761\u4ef6*/){ if(/*\u5224\u65ad\u6761\u4ef6*/) cout<<"\u8fd9\u662f\u5d4c\u5957if\u8bed\u53e5";}if(/*\u5224\u65ad\u6761\u4ef6*/) cout<<"\u8fd9\u662f\u7b2c\u4e00\u6761if\u8bed\u53e5";//\u8fd9\u65f6\u5019\u5206\u53f7\u5728cout\u7684\u540e\u9762if(/*\u5224\u65ad\u6761\u4ef6*/) cout<<"\u8fd9\u662f\u7b2c\u4e8c\u6761if\u8bed\u53e5";//\u8fd9\u65f6\u5019\u5206\u53f7\u5728cout\u7684\u540e\u9762

因为第一个if条件不满足,不能执行里面嵌套的第二个if

else总是最近匹配的

你多写一对括号就明白了

#include <stdio.h>
{
int a=2,b=-1,c=2;
if(a<b){
if(b<0) c=0;
else c+=1;
}

printf("%d",c);
}

else总是与最近的if匹配,因为第一句if(a<b)不成立所以直接跳过下面的if-else语句,输出c等于2没变

因为第一个没执行。

#include <stdio.h>
int main(void)
{
int a=2,b=-1,c=2;
if(a<b)
{
if(b<0)
c=0;
else
c+=1;
}
printf("%d",c);
}

扩展阅读:扫一扫题目出答案 ... python编程入门自学 ... c语言中if 1 是什么意思 ... c语言中if i%j 什么意思 ... c语言中&的用法 ... #if endif ... !x在c语言中等于什 ... c语言if与多个else if ... c语言符号大全表解释 ...

本站交流只代表网友个人观点,与本站立场无关
欢迎反馈与建议,请联系电邮
2024© 车视网