程序流程结构
目录:
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
由于功能过于强大,一般不建议使用,到处都是标记,不方便阅读。