所以我对课堂上的循环感到很困惑,但是我们必须在我们的一个作业中使用它。在摆弄并调整我从教科书编写的程序之后,我设法按照我想要的方式执行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;是休息。这部分是什么意思?谢谢
答案 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
(或return
,abort()
,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
表示退出此循环。