搜尋

首頁  >  問答  >  主體

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

    }
}
ringa_leeringa_lee2806 天前1563

全部回覆(4)我來回復

  • 巴扎黑

    巴扎黑2017-06-22 11:55:37

    第一個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:37

    break語句有兩種用途:
    1.用於switch語句中,從中途退出switch語句。
    2.用於循環語句中,從循環體內直接退出當前循環。

    題主的第一個break語句,這兩種用法都不屬於。

    回覆
    0
  • phpcn_u1582

    phpcn_u15822017-06-22 11:55:37

    你的程式碼有三個問題:

    1,main()函數無回傳值​​型別

    2,rollDice()、delay()這兩個函數未事先宣告就呼叫

    3,break使用錯誤

    以上三點任意一點都足以導致該程式直接報錯。

    另外,我勸你先打好語言基本功,然後多調試。

    回覆
    0
  • 迷茫

    迷茫2017-06-22 11:55:37

    break用來在while語句,switch語句,do{}while,for{}豫劇裡面,跳出

    不用於在if/else裡面跳出

    回覆
    0
  • 取消回覆