关于这段代码的if else问题
#include<stdio.h>#include<string.h>
int main()
{
char a,b,i,n,l=2;
gets(a);gets(b);
n=strlen(a);
if(strlen(b)!=n)l=1;
else
{
for(i=0;i<n;i++)
if(a==b||a==b+32||a+32==b)
if(a!=b)l=3;
else ;else {l=4;break;}
}
printf("%d",l);
return 0;
}
if(a==b||a==b+32||a+32==b)
if(a!=b)l=3;
else ;else {l=4;break;}
这段代码中的那个if else是怎么配对的呢? 没有括号的情况下,else遵循就近配对,也就是和他最近的还没有配对的if进行配对 if(a==b||a==b+32||a+32==b)
if(a!=b)l=3;
else ;else {l=4;break;}
就近匹配 。
else; 对应if(a!=b)l=3;
else {l=4;break;}对应 if(a==b||a==b+32||a+32==b)
页:
[1]