4 程序流程结构
C/C++支持基本的三种流程结构:
(1)顺序结构:程序顺序执行,不发生跳转。
(2)选择结构:依据条件是否满足,有选择的执行相应功能。
(3)循环结构:依据条件是否满足,循环多次执行某段代码。
4.1 选择结构
4.1.1 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)
{
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,未考上本科
//1.用户输入分数
int score = 0;
cout << "请输入一个分数:" << endl;
cin >> score;
//2.打印用户分数
cout << "你输入的分数为:" << score << endl;
//3.判断分数是否大于600
if (score > 600)
{
cout << "你考上一本大学了" << endl;
}
else if(score>500)
{
cout << "你考上二本大学" << endl;
}
else
{
cout << "你没考上本科"<<endl;
}
system("pause");
return 0;
}
(4)嵌套if语句:在if语句中,可以嵌套if语句,达到更精准的条件判断。
#include <iostream>
using namespace std;
int main()
{
//选择结构:嵌套if语句
//1.用户输入分数
int score = 0;
cout << "请输入一个分数:" << endl;
cin >> score;
//2.打印用户分数
cout << "你输入的分数为:" << score << endl;
//3.嵌套if语句
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
{
cout << "你没考上本科" << endl;
}
system("pause");
return 0;
}
案例:三只小猪称体重
#include <iostream>
using namespace std;
int main()
{
//题目:三只小猪称体重,判断哪个小猪最重
//创建三只小猪的体重变量
int num1 = 0;
int num2 = 0;
int num3 = 0;
//2.用户输入三只小猪的体重
cout << "请输入第1只小猪A的重量:" << endl;
cin >> num1;
cout << "请输入第2只小猪B的重量:" << endl;
cin >> num2;
cout << "请输入第3只小猪C的重量:" << endl;
cin >> num3;
cout << "小猪A的体重为:" << num1 << endl;
cout << "小猪B的体重为:" << num2 << endl;
cout << "小猪C的体重为:" << num3 << endl;
//3.判断哪只小猪最重
if (num1 > num2)//A比B重
{
if (num1 > num3)//A比C重
{
cout << "小猪A最重" << endl;
}
else
{
cout << "小猪C最重" << endl;
}
}
else//B比A重
{
if (num2 > num3)//B比C重
{
cout << "小猪B最重" << endl;
}
else
{
cout << "小猪C最重" << endl;
}
}
}
4.1.2 三目运算符
作用:通过三目运算符实现简单判断
语法:表达式1 ? 表达式2 :表达式3
解释:
如果表达式1为真,执行表达式2,并返回表达式2的结果;
如果表达式1为假,执行表达式3,并返回表达式3的结果;
#include <iostream>
using namespace std;
int main()
{
//三目运算符
//创建3个变量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;//10
cout << "b=" << b << endl;//100
return 0;
}
4.1.3 switch语句
作用:执行多条件分支语句
语法:
switch(表达式)
{
case 结果1:执行语句;break;
case 结果2:执行语句;break;
…
default:执行语句;break;
}
缺点:
判断的时候只能是整型或者字符型,不可以是一个区间
case里面如果没有break那么程序将会一直向下执行
优点:
结构清晰,执行效率高
#include <iostream>
using namespace std;
int main()
{
//switch语句
//给电影打分
//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;
default://前面所有case都不满足时的情况
cout << "你认为电影很烂" << endl;
break;
}
return 0;
}