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分局就會報你這個錯誤。
熱點內容