C++系列内容的学习目录 → \rightarrow →C++学习系列内容汇总。
程序流程结构分为两个篇章。
1、2部分的内容见C++基础入门(四)—— 程序流程结构(上)
3、4、5部分的内容见C++基础入门(四)—— 程序流程结构(下)
程序流程结构简介和选择结构部分的详细内容见C++基础入门(四)—— 程序流程结构(上)。
while循环语句的作用: 满足循环条件,执行循环语句。
while循环语句的语法:while(循环条件){ 循环语句 }
解释: 只要循环条件的结果为真,就执行循环语句。
#include
using namespace std;
int main()
{
//while循环
//在屏幕中打印0~9这10个数字
int num = 0;
while (num < 10) //while()小括号中需填入循环条件,且要避免死循环的出现
{
cout << num << endl;
num++;
}
system("pause");
return 0;
}
0
1
2
3
4
5
6
7
8
9
要注意的是,在执行循环语句时候,程序必须提供跳出循环的出口,否则出现死循环。
while循环练习案例: 猜数字。
案例描述: 系统随机生成一个1到100之间的数字,玩家进行猜测,如果猜错,提示玩家数字过大或过小,如果猜对恭喜玩家胜利,并且退出游戏。
#include
using namespace std;
#include //time系统时间包含的头文件
int main()
{
//添加随机种子,作用是利用当前系统时间生成随机数,防止每次随机数都一样
srand((unsigned int)time(NULL));
//1.系统生成随机数
int num = rand() % 100 + 1; //rand()%100+1 生成 0+1~99+1随机数
//cout << num << endl;
//2.玩家进行猜测
int val = 0;
while (1)
{
cout << "请玩家输入一个猜测的数字:" << endl;
cin >> val; //玩家输入数据
//3.判断玩家的猜测
//猜错,提示玩家猜测过大还是过小,并返回第二步
if (val > num)
{
cout << "猜测过大!" << endl;
}
else if (val < num)
{
cout << "猜测过小!" << endl;
}
else
{
cout << "恭喜您猜对了!" << endl;
//猜对,退出游戏
break; //可利用break关键字来退出当前循环
}
}
system("pause");
return 0;
}
请玩家输入一个猜测的数字:
50
猜测过大!
请玩家输入一个猜测的数字:
25
猜测过大!
请玩家输入一个猜测的数字:
13
恭喜您猜对了!
do…while循环语句的作用: 满足循环条件,执行循环语句。
do…while循环语句的语法: do{ 循环语句 } while(循环条件);
do…while循环语句与while的区别在于,不管条件的值如何,do…while都会先执行一次循环语句,再判断循环条件。
#include
using namespace std;
int main()
{
//do...while循环语句
//在屏幕中输出0到9这10个数字
int num = 0;
do
{
cout << num << endl;
num++;
}
while (num < 10);
system("pause");
return 0;
}
0
1
2
3
4
5
6
7
8
9
do…while循环练习案例: 水仙花数。
案例描述: 水仙花数是指一个 3 位数,它的每个位上的数字的 3次幂之和等于它本身,例如:1^3 + 5^3+ 3^3 = 153。请利用do…while语句,求出所有3位数中的水仙花数。
练习案例的代码如下所示。
#include
using namespace std;
int main()
{
//1.所有三位数
int num = 100;
do
{
//2.从所有三位数中找到水仙花数
int a = 0; //个位
int b = 0; //十位
int c = 0; //百位
a = num % 10; //获取数字的个位
b = num / 10 % 10; //获取数字的十位
c = num / 100; //获取数字的百位
if (a*a*a + b*b*b + c*c*c == num) //如果是水仙花数,才打印在屏幕上
{
cout << num << endl;
}
num++;
}
while (num < 1000);
system("pause");
return 0;
}
153
370
371
407
for循环语句的作用: 满足循环条件,执行循环语句。
for循环语句的语法:for(起始表达式;条件表达式;末尾循环体) { 循环语句; }
要注意的是,for循环中的表达式,要用分号进行分隔。
实例如下所示。
#include
using namespace std;
int main()
{
//for循环
//从数字0打印到数字9
for (int i = 0; i < 10; i++)
{
cout << i << endl;
}
system("pause");
return 0;
}
0
1
2
3
4
5
6
7
8
9
详解:
总结: while , do…while, for都是开发中常用的循环语句,for循环结构比较清晰,比较常用。
for循环语句的练习案例: 敲桌子。
案例描述: 从1开始数到数字100, 如果数字个位含有7,或者数字十位含有7,或者该数字是7的倍数,我们打印敲桌子,其余数字直接打印输出。
练习案例的代码如下所示。
#include
using namespace std;
int main()
{
//敲桌子
//1.1~100之间的数字
for (int i = 1; i <= 100; i++)
{
//2.从100个数字中找到特殊数字,打印“敲桌子”
//如果是7的倍数、个位数字有7、十位数字有7,打印“敲桌子”
if (i % 7 == 0 || i % 10 == 7 || i / 10 == 7) //如果是特殊数字,打印“敲桌子”
{
cout << "敲桌子" << endl;
}
else // 如果不是特殊数字,打印数字
{
cout << i << endl;
}
}
system("pause");
return 0;
}
1
2
3
4
5
6
敲桌子
.
.
.
95
96
敲桌子
敲桌子
99
100
嵌套循环的作用: 在循环体中再嵌套一层循环,解决一些实际问题。
例如我们想在屏幕中打印如下图片,就需要利用嵌套循环。
#include
using namespace std;
int main()
{
//利用嵌套循环实现星图
//打印星图
for (int i = 0; i < 10; i++)
{
for (int j = 0; j < 10; j++)
{
cout << "* ";
}
cout << endl;
}
system("pause");
return 0;
}
嵌套循环的练习案例: 乘法口诀表。
案例描述: 利用嵌套循环,实现九九乘法表。
#include
using namespace std;
int main()
{
//乘法口诀表
for (int i = 0; i <= 9; i++)
{
for (int j = 0; j <= i; j++)
{
cout << j << "*" << i << "=" << j * i << " ";
}
cout << endl;
}
system("pause");
return 0;
}
结果如下所示。
break语句的作用: 用于跳出选择结构或者循环结构。
break语句使用的时机:
switch条件语句中使用break语句的实例如下所示。
#include
using namespace std;
int main()
{
//break语句的使用时机
//1.出现在switch语句中
cout << "请选择副本难度:" << endl;
cout << "1.普通" << endl;
cout << "2.中等" << endl;
cout << "3.困难" << endl;
int select = 0; //创建选择结果的变量
cout << "请输入您认为的副本难度:" << endl;
cin >> select; //等待用户输入
switch(select)
{
case 1:
cout << "您选择的是普通难度!" << endl;
break;
case 2:
cout << "您选择的是中等难度!" << endl;
break;
case 3:
cout << "您选择的是困难难度!" << endl;
break;
default:
break;
}
system("pause");
return 0;
}
请选择副本难度:
1.普通
2.中等
3.困难
请输入您认为的副本难度:
2
您选择的是中等难度!
循环语句中使用break语句的实例如下所示。
#include
using namespace std;
int main()
{
//break语句的使用时机
//2.出现在循环语句中
for (int i = 0; i < 10; i++)
{
//如果i等于5,退出循环,不再打印
if (i == 5)
{
break;
}
cout << i << endl;
}
system("pause");
return 0;
}
0
1
2
3
4
嵌套循环中使用break语句的实例如下所示。
#include
using namespace std;
int main()
{
//break语句的使用时机
//3.出现在嵌套循环语句中
for (int i = 0; i < 10; i++)
{
for (int j = 0; j < 10; j++)
{
if (j == 5)
{
break;
}
cout << "* ";
}
cout << endl;
}
system("pause");
return 0;
}
* * * * *
* * * * *
* * * * *
* * * * *
* * * * *
* * * * *
* * * * *
* * * * *
* * * * *
* * * * *
continue语句的作用: 在循环语句中,跳过本次循环中余下尚未执行的语句,并继续执行下一次循环。
continue并没有使整个循环终止,只是跳出本次循环;而break则会跳出整个循环。
实例如下所示。
#include
using namespace std;
int main()
{
//continue语句
for (int i = 0; i <= 10; i++)
{
//如果是奇数,输出;如果是偶数,不输出
if (i % 2 == 0) //如果是偶数
{
continue; //可以筛选条件,执行到此就不再向下执行,接着执行下一次循环
}
cout << i << endl;
}
system("pause");
return 0;
}
1
3
5
7
9
goto语句的作用: 从goto语句无条件跳转到同一函数内的另一条语句。
goto语句的语法: goto 标记;
解释: 如果标记的名称存在,执行到goto语句时,会跳转到标记的位置。
在程序中不建议使用goto语句,以免造成程序流程混乱。
实例如下所示。
#include
using namespace std;
int main()
{
//goto语句
cout << "1.xxxx" << endl;
cout << "2.xxxx" << endl;
goto FLAG;
cout << "3.xxxx" << endl;
FLAG:
cout << "4.xxxx" << endl;
system("pause");
return 0;
}
1.xxxx
2.xxxx
4.xxxx