我做了一个游戏,但不想使用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;
答案 0 :(得分:2)
首先,尝试了解loop
的机制以及它们与do-while loop
和for loop
的区别。
根据您的代码,发生了什么事!
在do-while
部分中,您给出的指示是“先做某事”,然后检查条件。如果条件(检查)为true
crntShowBottle == prevShowBottle
,则循环必须再次运行。否则,如果条件为false
crntShowBottle != prevShowBottle
,则循环必须终止。
在for loop
部分中,您使用了infinite loop
for(;;)
。意味着循环将运行无限次。但是,您在loop
内编写了the break
条件。因此,当条件匹配crntShowBottle == prevShowBottle
时,您的循环将关闭。因此,您必须使用crntShowBottle != prevShowBottle
您还需要了解break
的工作原理!