C++程序学习第四部分,程序流程结构

程序流程结构

在这里插入图片描述
目录:
P24 程序流程结构-选择结构-单行if语句
P25 程序流程结构-选择结构-多行if语句
P26 程序流程结构-选择结构-多条件语句
P27 程序流程结构-选择结构-嵌套if语句
P28 程序流程结构-选择结构案例-三只小猪
P29 程序流程结构-选择结构案例-三目运算符
P30 程序流程结构-选择结构-switch语句
P31 程序流程结构-循环结构-while语句
P32 程序流程结构-循环结构案例-猜数字
P33 程序流程结构-循环结构-dowhile语句
P34 程序流程结构-循环结构案例-水仙花数
P35 程序流程结构-循环结构-for循环
P36 程序流程 结构-循环结构案例-敲桌子
P37 程序流程结构-嵌套循环
P38 程序流程结构-嵌套循环案例-乘法口诀表
P39 程序流程结构-跳转语句-break语句
P40 程序流程结构-跳转语句-continue

P24 程序流程结构-选择结构-单行if语句
在这里插入图片描述在这里插入图片描述
if后边的小括号里面就是判断的内容。
在这里插入图片描述
note:初学者最容易犯的错误,这个if后边不要加分号。不然和后边的内容就分开了,不再是一个判断整体。
在这里插入图片描述
运行成功。
P25 程序流程结构-选择结构-多行if语句
在这里插入图片描述
if else 结构。
在这里插入图片描述在这里插入图片描述
运行成功,感觉敲代码越来越顺畅了。
P26 程序流程结构-选择结构-多条件语句
在这里插入图片描述在这里插入图片描述
自己先写的代码,且运行成功了。
P27 程序流程结构-选择结构-嵌套if语句
在这里插入图片描述在这里插入图片描述
运行成功,这个里面的错误是,没有把嵌套的if结构,放在第一层if里面,就是说,嵌套的内容应该包含在第一个if循环内部,放在第一个大括号内部。

{补充
if是条件判断语句,只有if的条件成立(表达式的值为真)后,才会执行if部分的代码,否则将会执行else的代码。

如果是if…else if,则满足第一个if执行第一个if里的代码,如果不满足第一个if,而满足第二个if,则执行第二个if(即else if)的代码,如果都不满足,就不执行

如果后面有else(不带if的else),则只要前面的if和else if都没执行,就执行最后一个else。}

#include<iostream>
using namespace std;
int main()
{
	int score = 0;//在开发中,精准的使用嵌套if,使我们的开发更精准。
	cout << "请输入考试分数:  " << endl;
	cin >> score;
	if(score > 600)
	{
	cout << "恭喜您考上了一本大学!" << endl;
	if (score >700)
	{
	cout << "恭喜您考上了清华大学"<<  endl;
	}
	else if (score > 650)
	{
	cout << "您可以考入北京大学"<<endl;
	}
	else
	{
	cout << "您可以考入人民大学" <<endl;
	}
	}
	else if (score > 500)
	{
	cout <<"恭喜您考入二本大学" << endl;
	}
	else if (score >400 )
	{
	cout << "恭喜您考上了三本" << endl;
	}
	else 
		cout << "您未考上大学,请再接再厉"<<endl;
system("pause");
return 0;
}

P28 程序流程结构-选择结构案例-三只小猪
三只小猪称体重,看谁最重。
在这里插入图片描述在这里插入图片描述
自己先敲了一遍,问题有如下几个
1、if上边的一行代码少一个分号。
2、没有给出输入的机会。
在这里插入图片描述
运行成功
反思:需要键入小猪abc的体重,然后分析判断,不是直接给出。
在这里插入图片描述

P29 程序流程结构-选择结构案例-三目运算符
在这里插入图片描述在这里插入图片描述
运行成功。
小结:
1,三目运算符的运算符号,问号和冒号
2,三目运算符返回的东西,是一个变量,可以继续赋值变量。
P30 程序流程结构-选择结构-switch语句
在这里插入图片描述

#include<iostream>
using namespace std;
int main()
{
	int score = 0;
	cout << "请给出您对电影的打分:" << endl;
	cin >> score;
	cout << "您打的分数为: " << score << endl;
	//根据用户的输入分数来提示用户最后的结果。
	switch(score)
	{
	case 10:
		cout << "您认为是经典电影"<< endl;
		break;
	case 9:
		cout << "您认为是经典电影"<< endl;
		break;
	case 8:
		cout << "您认为电影非常好"<< endl;
		break;
	case 7:
		cout << "您认为电影非常好"<< endl;
		break;
	case 6:
		cout << "您认为电影一般"<< endl;
		break;
	case 5:
		cout << "您认为电影一般"<< endl;
		break;
	default :// 相当于else结构
		cout <<"您认为是烂片" << endl;
		break;	
	}
system("pause");
return 0;
}
//小结:if和switch的区别?
//switch缺点:判断时只能是整型或者字符型,不可以是一个区间,不能判断区间数据。
//switch优点:结构清晰,执行效率高。
//本案例的核心就是switch语句,case是其分支结构。
//注意:case里如果没有break,那么程序会一直向下执行。

if语句与switch语句
前言:在写程序的时候我们经常会对数据进行一些处理,比如我们要对某个数据进行判断的时候,那么我们就要使用if语句和switch语句。
一、if语句
概述:if语句是用来判定所给定的条件是否满足,根据判定的结果(真或假)决定执行给出的操作。
if语句有三种表达结构,如下:
语法结构:
① if(表达式)
语句;
②if(表达式)
语句1;
else
语句2;
③if(表达式1)
语句1;
else if(表达式2)
语句2;
else
语句3
同时在else后面还可以嵌套if语句
注意:else自动与距离最近且未匹配的if匹配
在这里插入图片描述
③如果你只想执行这一个case语句,不想执行其他case,那么就需要在这个

case 句后面加上break,跳出switch语句(根据要求自行决定)
注意:case后面必须为整形且为常量表达式
在这里插入图片描述
总结
通过学习条件语句,当我们面对选择时,可以有if和switch两种选择。要灵活运用if和switch语句,这样可以让我们的代码拥有更佳的可读性,并在编写代码时有更高的效率。

P31 程序流程结构-循环结构-while语句

#include<iostream>
using namespace std;
int main ()
{
	int num = 0;
	while (num < 10)
	{
	//num++;   这个会打印出来10.更改一下num++的位置就好了。
	//cout << num << endl;
	cout << num << endl;
	num++;
system("pause");
return 0;
}
//小结:while循环的重点。
//在执行循环语句的时候,程序必须提供跳出循环的出口,否则会出现死循环。
//while循环语句的作用:满足循环条件,执行循环语句
//语法:while 循环条件,循环语句
//解释:只要循环条件的结果为真,就执行循环语句。
//使用循环结构,让这些重复的代码,不要一直在跑。
//先跑一边最low的代码,实现屏幕上打印出0到9这十个数字.
	//int num =0;
	//cout << num << endl;
	//num++;
	//cout << num << endl;
	//num++;
	//cout << num << endl;
	//num++;
	//cout << num << endl;
	//num++;
	//cout << num << endl;
	//num++;
	//cout << num << endl;
	//num++;
	//cout << num << endl;
	//num++;
	//cout << num << endl;
	//num++;
	//cout << num << endl;
	//num++;
	//cout << num << endl;
	//num++;
	//cout << num << endl;
	//num++;
	//cout << num << endl;

运行成功,写代码越来越有感觉了。

P32 程序流程结构-循环结构案例-猜数字

#include<iostream>
using namespace std;
#include<ctime>
int main9()
{
	//添加随机数种子 利用当前系统时间生成随机数,防止每次随机数都一样。
	srand ( (unsigned int)time (NULL)); //没有这个时间的话,下面的随机数,是伪随机数,即每次随机的都一样。
	int num = rand() % 100 + 1;// rand() % 100 + 1 生成1到100的数字。
	cout << num << endl;
	int val = 0;//玩家输入的数据
	while (1)   //1代表啥来着??? while循环,为本案例的核心点。
	{
	cin >> val;
	if ( val> num )
	{
	cout << "猜测过大"<< endl;
	}
	else if (val < num)
	{
	cout << "猜测过小"  << endl;
	}
	else 
	{
	cout << "恭喜您猜对了" << endl;
	break;//,可以利用该关键字来退出当前循环。
	}
	}
system("pause");
return 0;
}
//while 循环练习案例:猜数字
//案例描述:系统随机生成一个1到100之间的数字,玩家进行猜测,
//如果猜错,提示玩家数字过大或者过小,如果猜对,恭喜玩家胜利,并且退出游戏。
//1、把案例抽象成几个步骤
//2、玩家进行猜测
//3、判断玩家的猜测
//4、猜对 退出游戏
//5、猜错 提示猜的结果,过大或者过小,重新返回第二步。

运行成功。

这个案例还是没有懂,————2023年7月17号
P33 程序流程结构-循环结构-dowhile语句
在这里插入图片描述
do while 和while的区别:
do while 是先执行一次循环体,再判断条件是否满足。而while是先判断是否满足,再执行循环体。
在这里插入图片描述
平常使用中,差别不大,基本上注意一下这个小细节就可以。
P34 程序流程结构-循环结构案例-水仙花数
在这里插入图片描述先进性案例分析。
在这里插入图片描述

出来了一个这样的结果,奇怪。
在这里插入图片描述在这里插入图片描述
小结:对于初始值是0的变量,可以进行重新赋值。
本节重点:
1,如何拆分数字,个十百位数。
2,使用while循环,找出所有的数字。

P35 程序流程结构-循环结构-for循环

在这里插入图片描述在这里插入图片描述
简化版,共分四段,
在这里插入图片描述
代码执行顺序
在这里插入图片描述在这里插入图片描述
这是什么bug?
在这里插入图片描述
搞笑了,我写的是1,不是i。这个之后一定得注意。
运行成功。
小结:
注意:for循环表达式中要用分号进行分割。
while, do …while,for 都是开发中常见的循环语句,for 循环结构比较清晰,比较受欢迎,比较常用,大家一定要练习。

P36 程序流程 结构-循环结构案例-敲桌子
在这里插入图片描述
这个跟做数学题类似,先分析解题思路,然后再进行代码编译,
在这里插入图片描述在这里插入图片描述
用逻辑或来解决,我是用的;,结果不行。
小结:本案例的核心,for循环,以及逻辑或的使用。

P37 程序流程结构-嵌套循环
在这里插入图片描述在这里插入图片描述
每次执行完就换行。
在这里插入图片描述
循环执行完以后再换行。
在这里插入图片描述
自己写成功了,激动呀,哈哈。
在这里插入图片描述
小结:
1、写循环的目的就是减轻代码量。
2、外层使用i,内层使用j。

P38 程序流程结构-嵌套循环案例-乘法口诀表
在这里插入图片描述在这里插入图片描述
自己先写了一遍,结果有一点点接近。
在这里插入图片描述
自己改进之后的结果。
但目前还是没办法让其显示一半。
在这里插入图片描述
有点小激动呀,自己竟然没看课程,给弄出来了。
课程讲解
在这里插入图片描述在这里插入图片描述
我们的结果还是不太一样,我的是列数大于行数,而课程里面是行数大于列数。
在这里插入图片描述在这里插入图片描述
成这个样子了。
在这里插入图片描述
修改后,完全ok。
P39 程序流程结构-跳转语句-break语句
在这里插入图片描述在这里插入图片描述
break的第一种使用方法,在switch语句中,退出case分支。
在这里插入图片描述
break的第二种使用方式。
在这里插入图片描述
第三种情况,利用break,退出内层循环。
下面是自己码出来的。
在这里插入图片描述
不是很理解,这个switch 和case语句。
补充:{
在这里插入图片描述
在这里插入图片描述
说明:

1)、switch后面括号内的“表达式”必须是整数类型。也就是说可以是int型变量、char型变量,也可以直接是整数或字符常量,哪怕是负数都可以。但绝对不可以是实数,float型变量、double型变量、小数常量通通不行,全部都是语法错误。
2)、当switch后面括号内“表达式”的值与某个case后面的“常量表达式”的值相等时,就执行此case后面的语句。执行完一个case后面的语句后,流程控制转移到下一个case继续执行。如果你只想执行这一个case语句,不想执行其他case,那么就需要在这个case语句后面加上break,跳出switch语句。
再重申一下:switch是“选择”语句,不是“循环”语句。很多新手看到break就以为是循环语句,因为break一般给我们的印象都是跳出“循环”,但break还有一个用法,就是跳出switch。
3)、若所有的case中的常量表达式的值都没有与switch后面括号内“表达式”的值相等的,就执行default后面的语句,default是“默认”的意思。如果default是最后一条语句的话,那么其后就可以不加break,因为既然已经是最后一句了,则执行完后自然就退出switch了。
4)、每个case后面“常量表达式”的值必须互不相同,否则就会出现互相矛盾的现象,而且这样写造成语法错误。
5)、“case常量表达式”只是起语句标号的作用,并不是在该处进行判断。在执行switch语句时,根据switch后面表达式的值找到匹配的入口标号,就从此标号开始执行下去,不再进行判断。
}
在这里插入图片描述
在这里插入图片描述
P40 程序流程结构-跳转语句-continue
在这里插入图片描述在这里插入图片描述在这里插入图片描述
取余操作。
小结:continue并没有使整个循环终止,而break会跳出循环。

P41 程序流程结构-跳转语句-goto
在这里插入图片描述在这里插入图片描述
由于功能过于强大,一般不建议使用,到处都是标记,不方便阅读。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值