目录
4 程序流程结构
4.2 循环结构
4.2.1 while循环语句
作用:满足循环条件,执行循环语句
语法:
while(循环条件){循环语句}
解释:只要循环条件的结果为真,就执行循环语句
示例:
int main()
{
//while 循环
//在屏幕中打印0--9 这10个数字
int num = 0;
while(num <= 9)
{
cout << num << endl;
num++;
}
system("pause");
return 0;
}
注意:在执行循环语句的时候,程序必须提供跳出循环的出口,否则出现死循环。
while循环练习案例:猜数字
案例描述:系统随机生成一个0--100之间的数字,玩家进行猜测。如果猜错,提示玩家数字过大或过小,如果猜对恭喜玩家胜利,并且退出游戏。
示例:
int main()
{
//添加随机数种子 作用利用当前系统时间生成随机数,防止每次随机数都一样
srand((unsigned int)time(NULL));
//1、系统随机生成一个随机数
//rand进行随机数生成,%100表示生成0---99的随机数
int num = rand()%100 + 1;
//cout << num << endl;
//2、玩家进行猜测
int val = 0;
//3、判断玩家的猜测进行相应判断,如果成功游戏结束,玩家胜利,如果猜错进行判断tips猜大或者猜小,重复第二步
while (1)
{
cout << "请输入您要猜测的结果。" << endl;
cin >> val;
if(val > num)
{
cout << "您输入的数字过大。" << endl;
}
else if (val < num)
{
cout << "您输入的数字过小。" << endl;
}
else
{
cout << "恭喜您游戏胜利!" << endl;
break;
}
}
system("pause");
return 0;
}
4.2.2 do...while循环语句
作用:满足循环条件,执行循环语句
语法:
do{循环语句}while(循环条件);
注意:与while的区别在于do...while会先执行一次循环语句,在进行判断循环条件。
示例:
int main()
{
//do...while语句
//在屏幕中输出0到9这10个数字
int num = 0;
do
{
cout << num << endl;
num++;
}while (num < 10);
system ("pause");
return 0;
}
练习案例:水仙花
案例描述:水仙花是指一个3位数,他的每个位上的数字的3次幂之和等于它本身
例如:1^3 + 5^3 + 3^3 =153
请利用do……while语句,求出所有3位数中的水仙花数
示例:
int main()
{
int num = 100;
int i,m,n =0;
//将所有的三位数进行输出100---999
//将所有三位数中找到水仙花数
//获取个位 十位 百位
//判断 个位^3 + 十位^3 + 百位^3 = 本身
do
{
i = num % 10;//获取个位数字
//cout << i << endl;
m = num / 10 % 10;//获取十位数字
//cout << m << endl;
n = num / 100;//获取百位数字
//cout << n << endl;
//if ((i*i*i + m*m*m + n*n*n) == num)//判断是否符合水仙花
//c++中的幂函数运算符加头文件#include<math.h> pow(int x,int y)表示x^y
if((pow(i,3) + pow(m,3) + pow(n,3)) == num)
{
cout << num << endl;
}
num++;
} while (num < 1000);
system ("pause");
return 0;
}
4.2.3 for循环语句
作用:满足循环条件,执行循环语句
语法:
for(起始表达示;条件表达式;末尾循环体){循环语句;}
示例:
int main()
{
//循环结构---for循环语句
//输出0-9
int num = 0;
for(int i = 0;i < 10 ; i++)
{
cout << num << endl;
num++;
}
system ("pause");
return 0;
}
练习案例:敲桌子
案例描述:从1开始数到数字100,如果数字个位含有7,或者数字十位含有7,或者该数字是7的倍数,我们打印敲桌子,其余数字直接打印输出。
示例:
int main()
{
/*
案例描述:从1开始数到数字100,
如果数字个位含有7,
或者数字十位含有7,
或者该数字是7的倍数,
我们打印敲桌子,
其余数字直接打印输出。
*/
//1、输出0-100
//a=个位数 b=十位数
int a,b = 0;
for(int i =1;i < 101;i++)
{
a = i % 10;//获取个位数
b = i / 10 %10;//获取十位数
if(a == 7 || b == 7 || i % 7 ==0)
cout << i <<" 敲桌子" << endl;
else
{
cout << i << endl;
}
}
system ("pause");
return 0;
}
4.2.4 嵌套循环
作用:在循环体中在嵌套一层循环,解决一些实际问题。
比如输出如下图就需要用到嵌套循环
示例:
int main()
{
//利用嵌套循环实现星图
//打印十行星图
for (int m = 0; m < 10; m++)
{
//打印一行星图
for(int i = 0;i < 10;i++)
{
cout << "*" ;
}
cout << endl;
}
system("pause");
return 0;
}
练习案例:乘法口诀表
案例描述:利用嵌套循环,实现九九乘法表
示例:
int main()
{
//输出乘法口诀表
for(int i =1;i < 10;i++)
{
for (int m = 1; m <= i; m++)
{
cout << i << "*" << m << "=" << i * m << "\t";
}
cout << endl;
}
system("pause");
return 0;
}