同时执行循环到for循环

时间:2020-09-20 11:50:05

标签: c loops

我做了一个游戏,但不想使用do-while循环。 因此,我尝试使用for循环。问题是当我运行do-while时 它可以工作,但是当我使用for循环时,它的工作方式不同。

我认为我正确地将do-while更改为for循环。有人可以让我知道我在想什么吗?

    do {
        crntShowBottle = rand() % 2 + 2;
    } while (crntShowBottle == prevShowBottle);
    prevShowBottle = crntShowBottle;



    for (;;) 
    {
        crntShowBottle = rand() % 2 + 2;
        if (crntShowBottle == prevShowBottle)
                break;
    } 
    prevShowBottle = crntShowBottle;

1 个答案:

答案 0 :(得分:2)

首先,尝试了解loop的机制以及它们与do-while loopfor loop的区别。

根据您的代码,发生了什么事!

  1. do-while部分中,您给出的指示是“先做某事”,然后检查条件。如果条件(检查)为true crntShowBottle == prevShowBottle,则循环必须再次运行。否则,如果条件为false crntShowBottle != prevShowBottle,则循环必须终止。

  2. for loop部分中,您使用了infinite loop for(;;)。意味着循环将运行无限次。但是,您在loop内编写了the break条件。因此,当条件匹配crntShowBottle == prevShowBottle时,您的循环将关闭。因此,您必须使用crntShowBottle != prevShowBottle

  3. 您还需要了解break的工作原理!