首页 >社区问答列表 >c++ - c语言 break语句报错

c++ - c语言 break语句报错

不知道哪里出错了,请大神提示下,看了好久了,感觉是括号的问题,但不知道怎么改

#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++)
    {

    }
}

  • 巴扎黑
  • 巴扎黑    2017-06-22 11:55:374楼

    第一个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;

    +0添加回复

  • 回复
  • 三叔
  • 三叔    2017-06-22 11:55:373楼

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

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

    +0添加回复

  • 回复
  • phpcn_u1582
  • phpcn_u1582    2017-06-22 11:55:372楼

    你的代码有三处问题:

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

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

    3,break使用错误

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

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

    +0添加回复

  • 回复
  • 迷茫
  • 迷茫    2017-06-22 11:55:371楼

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

    不用于在if/else里面跳出

    +0添加回复

  • 回复