这是如何做的循环工作?

时间:2017-12-01 12:57:31

标签: c++

所以我对课堂上的循环感到很困惑,但是我们必须在我们的一个作业中使用它。在摆弄并调整我从教科书编写的程序之后,我设法按照我想要的方式执行do while循环,但我不知道这是如何工作的。有人可以向我解释这一点,以便我可以从头开始自己做吗?感谢

    do
{
    cout << "enter number of items : ";
    cin >> itemsnum;

    if (itemsnum < 1 || itemsnum > 5)
        {
        cout << "\nyou must order at least one item and not more than five items\nplease reenter the amount of items ordered : ";
        cout << endl;
        }

    else
        break;
} 
while (1);

所以在这部分代码中,用户必须输入至少一个项目且不超过5.如果输入的数据不符合条件,程序将循环并提示用户输入再次金额。我理解&#34;做&#34;部分但我不理解&#34;而(1)&#34;在下面。还有一件事,低于&#34;否则&#34;是休息。这部分是什么意思?谢谢

3 个答案:

答案 0 :(得分:5)

这是构建循环控制结构的一种相当懒惰的方式。

do {   } while(1);

表面上是无限循环。要退出无限循环,break用于退出循环。

就我个人而言,我甚至不喜欢程序中无限循环的外观。由于错误的重构,他们确实习惯了随着时间的推移变得无限。我更喜欢像

这样的东西
   do {
       // use continue to go round again, or break to exit immediately
   } while (0); // if control reaches here, the loop finishes.

答案 1 :(得分:1)

这三件事只是编写无限循环的不同方式:

do { } while (1)
while (1) { }
for (;;) { }

循环由break(或returnabort()exit()std::terminate()throw等声明终止。

大多数人不会使用do/while进行无限循环。其他方式更少打字,并提出它是一个无限循环的事实。

您也可以在C ++中使用true代替1。在布尔(true / false)上下文中,它们是等价的。

答案 2 :(得分:0)

在C和C ++中0被认为是假的,任何其他数值都是真的,尤其是1.这与cpu如何进行比较的基本机制有关。

所以while(1)与while(true)相同。因此,do{X}while(1)表示执行X,直到1为假,或者换句话说永远执行X.

break表示退出此循环。