c++ – C-Sprach-Break-Anweisung meldet Fehler
ringa_lee
ringa_lee 2017-06-22 11:53:37
0
4
1460

Ich weiß nicht, wo ich einen Fehler gemacht habe, bitte geben Sie mir einen Hinweis. Ich habe mir das schon lange angesehen und denke, dass es ein Problem mit den Klammern ist, aber ich weiß nicht, wie ich es ändern kann

#include<stdio.h>
#include<time.h>
#include<stdlib.h>
main()
{
    int rollDice();
    void delay();
    int i,result = 0 ,result1 = 0;
    printf("Game Start!!!!\n");
    result = rollDice();
    printf("%d\n",result);
    delay();
    if ((result == 7 )||(result == 11))
        {printf("Y\n");break;}
    else if ((result == 2) || (result == 3)|| (result == 12))
        {printf("N\n");}
    else
        printf("C\n");
        for (i = 0;i<7;i++)
            {result1 = rollDice();
            printf("%d\n",result1);
            if (result1==result)
                {printf("Y\n");break;}
            else if ((result1!=result)&&(i==6))
                printf("N\n");
        }
    return 0;
}
int rollDice()
{
     void delay();
     int a,b,c;
         srand((unsigned)time(NULL));
         a= rand()%6 + 1;
         delay();
         b= rand()%6 + 1;
         c = a + b;
     return c;
}
void delay()
{
    long t;
    for (t=0;t<50000000;t++)
    {

    }
}
ringa_lee
ringa_lee

ringa_lee

Antworte allen(4)
巴扎黑

第一个break使用不恰当,必须在循环里面才能使用break。第二个break就可以。建议你代码格式统一,有花括号就统一加花括号。代码改成这样:

int rollDice();
void delay();
int i,result = 0 ,result1 = 0;
printf("Game Start!!!!\n");
result = rollDice();
printf("%d\n",result);
delay();
if ((result == 7 )||(result == 11))
    {printf("Y\n");}
else if ((result == 2) || (result == 3)|| (result == 12))
    {printf("N\n");}
else
    {printf("C\n");}
    
    
    
    
    for (i = 0;i<7;i++)
        {result1 = rollDice();
        printf("%d\n",result1);
        if (result1==result)
            {printf("Y\n");break;}
        else if ((result1!=result)&&(i==6))
            printf("N\n");
    }
    
return 0;
三叔

break语句有两种用途:
1.用于switch语句中,从中途退出switch语句。
2.用于循环语句中,从循环体内直接退出当前循环。

题主的第一个break语句,这两种用法都不属于。

phpcn_u1582

你的代码有三处问题:

1,main()函数无返回值类型

2,rollDice()、delay()这两个函数未事先声明就调用

3,break使用错误

以上三点任意一点都足以导致该程序直接报错。

另外,我劝你先打好语言基本功,然后多调试。

迷茫

break用来在while语句,switch语句,do{}while,for{}豫剧里面,跳出

不用于在if/else里面跳出

Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!