新手请教,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\uff1fif(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
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语言符号大全表解释 ...