必备技能3.5:do-while循环
C++中的最后一个循环是do-while循环。不像for和while循环,它们都是在执行循环之前先进行控制条件的检测,do-while循环是在循环体执行之后才进行循环控制条件的检测。这就是说,do-while循环至少要执行一次。它的通用形式如下:
do
{
语句;
}while(条件);
在循环中只有一条语句的情况下,上面的一对括号并不是必要的,但是通常还是要这样写以便提高程序的可读性。do-while循环一直执行,只要条件表达式的值为真(true)。
下面的程序会一直循环直到用户键入100这个数字:
#include <iostream>
using namespace std;
int main()
{
int num;
do
{
cout << " Enter a number ( 100 to stop ):";
cin >> num;
}while( num != 100 ) ;
return 0;
}
使用do-while循环,我们可以进一步改善一下前面的“猜数字”程序。这次,这个程序会一直循环直到用户猜中了数字。
//Magic Number program; 3rd improvement.
#include <iostream>
#include <cstdlib>
using namespace std;
int main()
{
int magic; // magic number
int guess; // user's guess
magic = rand();
do
{
cout << "Enter your guess:";
cin >> guess;
if ( guess == magic )
{
cout << "**Right**";
cout << magic << " is the magic number. \n";
}
else
{
cout << "...Sorry, your are wrong.\n";
if ( guess > magic )
cout << " Your guess is too high. \n";
else
cout << " Your guess is too low. \n";
}
}while( guess != magic );
return 0;
}
程序运行的可能结果如下:
Enter your guess:10
...Sorry, your are wrong.
Your guess is too low.
Enter your guess:100
...Sorry, your are wrong.
Your guess is too high.
Enter your guess:50
...Sorry, your are wrong.
Your guess is too high.
Enter your guess:41
**Right**41 is the magic number.
最后一点:和for以及while循环一样,do-while循环体可以为空,但这种情况在实际中很少用到。
练习:
1. while和do-while循环的主要区别是什么?
2. While循环的循环体可以为空吗?
答案:
1. While循环中的条件检测是在循环开始前进行的,而do-while的循环检测是在循环之后才进行的,因此do-while循环至少会执行一次。
2. 是的,while循环的循环体可以为空。其实C++中的任何其他循环的循环体都可以为空。
专家答疑:
问:考虑到C++中内置的灵活性,在选择使用循环的时候,应该有什么样的准则?也就是说,怎么来选择合适的循环了?
答:在明确知道循环次数的情况下通常使用for循环;在循环体至少需要被执行一次的情况下使用do-while循环。在通常不能明确知道循环需要执行的次数的情况下使用while循环。
按照原文的结构,下一篇应该为:http://blog.csdn.net/zhangxingping/article/details/7054205