代码之家  ›  专栏  ›  技术社区  ›  Kurogami

错误C2059:语法错误:“}”C++

  •  1
  • Kurogami  · 技术社区  · 7 年前
    void walka(Postac p, Przeciwnik e, int walkaa)
    {
        if (p.szybkosc < 0)
        {
            p.szybkosc = 0;
        }
    walka:
        walkaa = p.szybkosc - e.szybkosc;
        if (walkaa > 0)
        {
            do
            {
                cout << "Zadajesz " << p.sila << " obrażeń." << endl << endl;
                e.zycie -= p.sila;
                cout << "Życie: " << p.zycie << " Życie przeciwnika: " << e.zycie << endl << endl;
                if (e.zycie <= 0)
                {
                    cout << "Wygrałeś!" << endl;
                    goto koniecwalki;
                }
                walkaa -= e.szybkosc;
            } while (walkaa > 0);
            goto walka;
        }
        else
        {
            do
            {
                cout << "Otrzymujesz " << e.sila << " obrażeń." << endl << endl;
                p.zycie -= e.sila;
                cout << "Życie: " << p.zycie << " Życie przeciwnika: " << e.zycie << endl << endl;
                if (p.zycie <= 0)
                {
                    cout << "Zostałeś pokonany." << endl;
                    goto koniecwalki2;
                }
                walkaa += p.szybkosc;
            } while (walkaa < 0);
        }
        goto walka;
    koniecwalki:
        cout << "Przegrana" << endl;
    koniecwalki2:
    
    } 
    

    1>其他。cpp(202):错误C2059:语法错误:“}”

    第202行是此函数末尾的最后一个花括号。 我不知道为什么我现在会出现这个错误。我之前有过几次,但每次都是随机增加的括号,我不得不删除。

    1 回复  |  直到 7 年前
        1
  •  8
  •   Vlad from Moscow    7 年前

    语法错误意味着您必须在标签后使用null语句

    koniecwalki2: ;
                 ^^^
    }
    

    也就是说,它是一个可以标记的语句(在C++中,声明也是语句,而在C中,声明不是语句)。

    考虑到使用 goto 声明。这使得代码难以阅读和修改。