C++ 错误C2059:语法错误:';}';C++; void walka(邮递、邮递、国际walkaa) { if(p.szybkosc0) { 做 { cout

C++ 错误C2059:语法错误:';}';C++; void walka(邮递、邮递、国际walkaa) { if(p.szybkosc0) { 做 { cout,c++,syntax,label,goto,C++,Syntax,Label,Goto,语法错误意味着您必须在标签后面使用null语句 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 &l

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

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:

} 

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


考虑到使用
goto
语句是一个坏主意。这会使代码难以读取和修改。

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

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:

} 

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


考虑到使用<代码> Goto 语句是一个坏主意。这使得代码难以读取和修改。

使用这些<代码> Goto < /Case>跳转有特殊的原因吗?请您也给我们完整的错误信息。提示:总是用英语编程。另一个提示:不要在C++中使用GOTO。不要使用Goto。有没有使用“<代码> Goto < /Cords>跳转”的具体原因?请您也给出完整的错误信息。提示:总是用英语编程。另一个提示:不要在C++中使用GOTO。不要使用GOTO。永远不要提“代码> Goto < /Cord>语句,使代码更难调试和可能出现的安全问题。@ Immac你没有在IBM工作。他们会很快解释说,使用goto语句没有什么不好的。:)更不用说使代码更难调试的
goto
语句以及可能出现的安全问题。@Immac看起来你没有在IBM工作过。他们会很快解释说,在美国没有什么不好的唱《后藤宣言》:)