if语句编译出现问题
发布时间: 2023-06-08 13:51:07
⑴ 使用if-else if-else时编译器报错
C++的访问域是通过{}控制的,不像python之类的靠对齐。
所以
if(n>=100)
{=n/100;}
shi=(n-*100)/10;
……
elseif(n>=10)
{shi=n/10;}
ge=n-shi*10;
for(i=0;i<shi;i++)
{cout<<'S';}
for(i=0;i<ge;i++)
{cout<<'i';}
cout<<endl;
else
{ge=n;}
for(i=0;i<ge;i++)
{cout<<'i';}
cout<<endl;
return0;
和你写的是等效的,明显是错误的…… C++语句结束不是}就是分号做结尾,无论遇到哪个都是终结符,编译器解析会将他们当做一个文法元素。if-else是就近匹配,if语句块终结的地方如果下一个语句不是else分句则默认匹配if-else{none},表示一个空的else默认匹配。之后结束此过程继续扫描。如果再某个非if语句块结尾碰到一个else分局就会报你这个错误。
热点内容