簡體   English   中英

如何在沒有break語句的情況下結束while循環?

[英]How to end a while loop without a break statement?

我做了一個劊子手游戲; 它運行良好,沒有錯誤。 我使用了一個帶有嵌套 if 語句的 while 循環,讓玩家進行十次猜測。 如果他們完全拼寫了這個詞,我希望循環中斷。 我正在使用一個破折號計數器來跟蹤剩余的字母數量; 當它達到零時,那么這個詞就完全拼寫了。

問題是,我的老師不允許我使用 break 語句。 我沒有看到任何其他方法可以打破 while 循環。 想法?

int main()
{
    printf("Your Word Is: %s", &dash);
    //printf("\nWord: %c", &dash);

    loopcount = 10;
    count = 1;
    while ((count <= loopcount))
    {
        printf("\n\nPick a letter to guess: ");
        scanf(" %c", &guess);

        printf("\n\nYour Guess Was %c. ", guess);
        count = count + 1;

        if (guess == 'c')
        {
            dash[0] = 'c';
            printf("\n\n %s", dash);
        } else if (guess == 'o')
        {
            dash[1] = 'o';
            printf("\n\n %s", dash);
        } else if (guess == 'd')
        {
            dash[2] = 'd';
            printf("\n\n %s", dash);
        } else if (guess == 'i')
        {
            dash[3] = 'i';
            printf("\n\n %s", dash);
        } else if (guess == 'n')
        {
            dash[4] = 'n';
            printf("\n\n %s", dash);
        } else if (guess == 'g')
        {
            dash[5] = 'g';
            printf("\n\n %s", dash);
        } else
        {
            printf("That Letter Is Not Apart of this Word");
        }
    
        printf("\n\nYou are at Guess Number %d, Your word is at %s",
              count, dash);
    
        dashcount = 0;
        for (i = 0; dash[i]; i++)
        {
            if (dash[i] == '-')
            {
                dashcount++;
            }
        }
    }

    if (dashcount > 0)
    {
        printf("\n");

    } else
    {
        printf("\n\n\nI'm Sorry, the word was %s.", word);
    }

    printf("\n\n");
    return 0;
}

嘗試將 if 語句更改為:

 while ((count <= loopcount) && (dashcount > 0))

這個 if 語句將使 while 循環僅在雙方都為 True 時運行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM