C++ Note(Chapter5:Loop)
Chapter 5
文章目录
5.1 The while
Loop
while
Loop 的语法:
while(loop-continuation-condition)
{
//loop body
Statements(s);
}
循环中包含重复执行的语句部分称为loop body
,loop body
的一次执行称为循环的一次迭代,每个循环都包含一个loop-continuation-condition
,其为boolean
表达式,控制loop body
的进行。loop-continuation-condition
结果为Ture
时,loop body
继续执行,如果结果为false
,循环结束,program执行while
之后的语句。
int count = 0;
while(count < 100) //loop-continuation-condition
{
cout << "Welcome to C++\n"; //loop body
count++;
}
在这个循环中,count作为计数控制循环变量来记录执行的次数,我们可以知道循环体应该执行多少次。
int sum = 0, i = 1;
while(i < 10)
{
sum += i;
i++;
}
cout << "Sum is " << sum; //此程序用while循环计算了从0到10的累加和
如果这个程序将循环体内的i++
删除,这个程序将会变为无限循环,因为condition永远为false。
5.1.1 Case Study: Guessing Numbers
一般来说,写程序前的算法思考比开始写程序更加重要。我们可以将这个问题实际操作一边,查看每一步我们需要做什么,一般就是算法思路,继续进行细节上的完善就能得到最终的程序源代码。
对于一个需要循环的程序,我们往往最开始可能不知道哪里需要循环,可以先将一般的形式写出来,再run程序查看哪一部分需要我们写循环,再加上即可。
* 1.生成随机数
* 2.提示用户第一次猜测数字
* 3.比较输入数字和随机数,在一个while循环中如果两者不等
* 提示用户输入数字与随机数的大小关系用户继续重新输入数字直到二者相等
* 4.告诉用户结果
*/
#include<iostream>
#include<cstdlib>
#include<ctime>
using namespace std;
int main()
{ //1.生成随机数,这次需要生成的为[0,100]。
//要取得[a,b]的随机整数,使用(rand()%(b-a+1)+a);
srand(time(0));
int randomNumber = rand() % 101;
//提示用户输入guess
cout << "Please enter your guessd number: ";
int userNumber;
cin >> userNumber;
//check用户guess和随机数
while (userNumber != randomNumber) //如果用户guess不等于随机数,进入循环。
//否则即跳出循环
{
if (userNumber < randomNumber)
{
cout << "Your guess is too lower, please enter your guess again: ";
cin >> userNumber;
}
else if (userNumber > randomNumber)
{
cout << "Your guess is too high, please enter your guess again: ";
cin >> userNumber;
}
}
cout << "The number is " << userNumber << endl;
return 0;
}