使用if-else if-else时编译器报错

1个回答

  • C++的访问域是通过{}控制的,不像python之类的靠对齐.

    所以

    if(n>=100)

    {bai=n/100;}

    shi=(n-bai*100)/10;

    ……

    else if(n>=10)

    { shi=n/10;}

    ge=n-shi*10;

    for(i=0;i

    { cout

    { cout

    else

    { ge=n;}

    for(i=0;i

    {cout

    x05x05return 0;

    和你写的是等效的,明显是错误的…… C++语句结束不是}就是分号做结尾,无论遇到哪个都是终结符,编译器解析会将他们当做一个文法元素.if-else是就近匹配,if语句块终结的地方如果下一个语句不是else分句则默认匹配if-else{none},表示一个空的else默认匹配.之后结束此过程继续扫描.如果再某个非if语句块结尾碰到一个else分局就会报你这个错误.