4.程序流程结构
4.1选择结构
4.1.1if语句
作用:执行满足条件的语句
If语句的三种形式:
①单行格式if语句
②多行格式if语句
③多条件的if语句
1.单行格式if语句:
if(条件)
{条件满足执行的语句}
代码示例:
#include<iostream>
using namespace std;
int main()
{
//选择结构 单行if语句
//用户输入分数如果分数大于600,视为考上一本大学,在屏幕输出
//1.用户输入分数
int score = 0;
cout << "请输入一个分数:" << endl;
cin >> score;
//2.打印用户输入的分数
cout << "您输入的分数为:" << score << endl;
//3.判断分数是否大于600,如果大于,输出
if (score > 600)//if条件后面不要加;
{
cout << "恭喜你考上了一本大学" << endl;
}
system("pause");
return 0;
}
2.多行格式的if语句:
if(条件)
{条件满足执行的语句}
Else
{条件不满足执行的语句}
代码示例:
#include<iostream>
using namespace std;
int main()
{
//选择结构-多行if语句
//输入考试分数,如果大于600,视为考上一本大学,在屏幕输出
//如果没有考上一本大学,打印未考上一本大学
//1.输入考试分数
int score = 0;
cout << "请输入考试成绩:" << endl;
cin >> score;
//2.提示用户输入的分数
cout << "你的分数为:" << score << endl;
//3.判断 如果大于600 ,打印考上一本,否则打印未考上一本
if (score > 600)
{
cout << "恭喜你考上一本大学" << endl;
}
else
{
cout << "你未考上一本大学" << endl;
}
system("pause");
return 0;
}
3.多条件的if语句:
If(条件1)
{条件1满足执行的语句}
Else if(条件2)
{条件2满足执行的语句}
...
Else
{都不满足执行的语句}
代码示例:
#include<iostream>
using namespace std;
int main()
{
//选择结构 多条件if语句
//输入一个考试成绩,>600分,视为考上一本,在屏幕输出
//>500,视为考上2本大学,在屏幕输出
//>400,视为考上三本大学,屏幕输出
//<=400,视为为考上本科,屏幕输出
int score = 0;
cout << "请输入你的成绩:" << endl;
cin >> score;
cout << "您的成绩是:" << score << endl;
if (score > 600)
{
cout << "恭喜你考上一本大学" << endl;
}
else if (score > 500)
{
cout << "恭喜你考上二本大学" << endl;
}
else if (score > 400)
{
cout << "恭喜你考上三本大学" << endl;
}
else
{
cout << "很遗憾你没考上本科" << endl;
}
system("pause");
return 0;
}
4.嵌套if语句:
在if语句中,可以嵌套使用if语句,达到更精确的条件判断。
4.1.2三目运算符
作用:通过三目运算符实现简单的判断
语法:表达式1?表达式2:表达式3
解释:如果表达式1值为真,执行表达式2,并返回表达式2的结果
如果表达式1值为假,执行表达式3,并返回表达式3的结果。
代码示例:
#include<iostream>
using namespace std;
int main()
{
//三目运算符
//创建三个变量 a b c
//将a和b作比较,将变量大的值赋值给c
int a = 10;
int b = 20;
int c = 0;
c = a > b ? a : b;
cout << "c=" << c << endl;
//在c艹中三目运算符返回的是变量,可以继续赋值
(a < b ? a : b) = 100;
cout << "a=" << a << endl;
cout << "b=" << b << endl;
system("pause");
return 0;
}
运行结果:
4.1.3switch语句【包含案例】
作用:执行多条件分支语句
语法:
switch(表达式)
{
case 结果1:执行语句;break;
case 结果2:执行语句;break;
...
default:执行语句;break;
}
代码示例:
#include<iostream>
using namespace std;
int main()
{
//swicth语句
//给电影打分
//10~9经典
//8~7非常好
//6~5一般
//5以下 烂片
//1.提示用户给电影评分
cout << "请输入你的打分:" << endl;
//2.用户开始发打分
int score = 0;
cin >> score;
cout << "您打的分数为:" << score << endl;
//3.根据用户输入的分数来提示用户最后的结果
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 :
cout << "您认为这是一个烂片" << endl;
break;
}
system("pause");
return 0;
}
运行结果:
4.1.3.1if和switch区别?
//switch缺点,判断时候只能是整型或者字符型,不可以是一个区间
//switch优点,结构清晰,执行效率高
4.2循环结构
4.2.1while循环语句
作用:满足循环条件,执行循环语句
语法:while(循环条件)
{循环语句}
解释:只要循环条件的结果为真,就执行循环语句
代码示例:(打印数字0~9)
#include<iostream>
using namespace std;
int main()
{
//while循环
//在屏幕打印0~9这10个数
//注意:在写循环时候注意死循环出现
int num = 0;
while (num < 10)
{
cout << num << endl;
num++;
}
system("pause");
return 0;
}
①【案例】while循环实现猜测随机数
#include<iostream>
using namespace std;
//time系统时间头文件包含
#include<ctime>
int main()
{
//添加随机数种子 利用当前系统时间生成随机数,防止每次随机数都一样
srand(time(NULL));
//while循环练习案例:猜数字
//1.系统生成随机数 rand()
int num = rand() % 100 + 1; //rand()%100生成0~99的随机数
// 2.玩家进行猜测
int val = 0;
while (1)
{
cin >> val;
// 3.判断玩家的猜测
if (val > num)
{
cout << "猜测过大" << endl;
}
else if(val<num)
{
cout << "猜测过小" << endl;
}
else
{
cout << "猜对了" << endl;
break;//break在循环中,可以利用关键字退出当前循环
}
}
// 猜对 退出游戏
// 猜错 提示猜的结果 过大或者过小 重新返回第二步
system("pause");
return 0;
}
4.2.2do...while循环语句
作用:满足循环条件,执行循环语句
语法:do{循环语句}
While{循环条件}
注意:与while的区别在于do...while会先执行一次循环语句,再判断循环条件
代码实例:
#include<iostream>
using namespace std;
int main()
{
//do...while语句
//在屏幕中输出0~9这10个数字
int num = 0;
do
{
cout << num << endl;
num++;
} while (num < 10);
//do...while和while区别:do...while先执行一次
system("pause");
return 0;
}
①【案例】水仙花数
案例描述:水仙花数是指一个3位数,它的每个位上的数字的3次幂之和等于它本身
例如:1^3+5^3+3^3=153
请利用do……while语句,求出所有3位数中的水仙花数
代码示例:
#include<iostream>
using namespace std;
int main()
{
//水仙花数
//1.将所有三位数输出(100~999)
int num = 100;
do {
//2.从所有三位数字中找到水仙花数
int a = 0;
int b = 0;
int c = 0;
a = num % 10;//获取个位 对数字取模于10
b = num / 10 % 10;//获取十位 先整除于10,得到两位数字,再取模于10,得到10位
c = num / 100; //获取百位 直接整除于100,获取百位
if (a * a * a + b * b * b + c * c * c==num)
//判断 个位^3+十位^3+百位^3=本身
// 如果是水仙花数就打印
{
cout << num << endl;
}
num++;
} while (num < 1000);
//判断 个位^3+十位^3+百位^3=本身
system("pause");
return 0;
}
运行结果:
4.2.3for循环语句
作用:满足循环条件,执行循环语句
语法:for(起始表达式;条件表达式;末尾循环体)
{循环语句;}
代码示例:
#include<iostream>
using namespace std;
int main()
{
//for循环
//从数字0 打印到数字9
//格式:for(起始表达式;条件表达式;末尾循环体)
for (int i = 0; i < 10; i++)//里面内容可以为空
{
cout << i << endl;
}
system("pause");
return 0;
}
4.2.4嵌套循环【打印*图】
作用:在循环体中再嵌套一层循环,解决一些实际问题
例如我们想在屏幕中打印如下图片,就需要嵌套循环
代码实例(打印*图):
#include<iostream>
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<iostream>
using namespace std;
int main()
{
int num = 0;
//利用嵌套循环,实现九九乘法表
for (int i = 1; i < 10; i++)
{
for (int j = 1; j <=i; j++)
{
num = i * j;
//cout << "i*j="<<i<<j<<num<< endl;
cout << j << "*" << i << "=" << num << " ";
}
cout << endl;
}
system("pause");
return 0;
4.3跳转语句
4.3.1break语句
作用:用于跳出选择结构或者循环结构
Break使用的时机:
*出现在switch条件语句中,作用是终止case并跳出switch
*出现在循环语句中,作用是跳出当前的循环语句
*出现在嵌套循环中,跳出最近的内层循环语句
4.3.2goto语句
作用:可以无条件跳转语句
语法:goto标记
解释:如果标记的名称存在,执行到goto语句时,会跳转到标记的位置