C++基础入门(四)—— 程序流程结构(上)

C++系列内容的学习目录 → \rightarrow C++学习系列内容汇总

  程序流程结构分为两个篇章。
    1、2部分的内容见C++基础入门(四)—— 程序流程结构(上)
    3、4、5部分的内容见C++基础入门(四)—— 程序流程结构(下)

1. 程序流程结构概述

  C/C++支持最基本的三种程序运行结构:顺序结构、选择结构、循环结构。

  • 顺序结构:程序按顺序执行,不发生跳转;
  • 选择结构:依据条件是否满足,有选择的执行相应功能;
  • 循环结构:依据条件是否满足,循环多次执行某段代码。

2. 选择结构

2.1 if 语句

  if 语句的作用: 判断一个指定的条件是否为真,根据判断结果决定是否执行另外一条语句,即执行满足条件的语句。

  if语句的三种形式

  • 单行格式if语句
  • 多行格式if语句
  • 多条件的if语句
  1. 单行格式if语句: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;

}

请输入一个分数:
498
您输入的分数为:498

请输入一个分数:
689
您输入的分数为:689
恭喜您考上一本大学!

  1. 多行格式if语句:if(条件){ 条件满足执行的语句 }else{ 条件不满足执行的语句 };

在这里插入图片描述
   多行格式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;
	}
	else
	{
		cout << "很遗憾,您未考上一本大学!" << endl;
	}

	system("pause");

	return 0;

}

请输入一个分数:
690
您输入的分数为:690
恭喜您考上一本大学!

请输入一个分数:
450
您输入的分数为:450
很遗憾,您未考上一本大学!

  1. 多条件的if语句:if(条件1){ 条件1满足执行的语句 }else if(条件2){条件2满足执行的语句}... else{ 都不满足执行的语句}

在这里插入图片描述
   多条件的if语句的实例如下所示。

#include<iostream>
using namespace std;

int main()
{

	//选择结构:多条件的if语句
	//用户输入分数,如果分数大于600,视为考上一本大学,在屏幕上输出;
	//如果分数大于500,视为考上二本大学,在屏幕上输出;
	//如果分数大于400,视为考上三本大学,在屏幕上输出;
	//如果分数小于等于400,视为未考上大学,在屏幕上输出
	//1.用户输入分数
	int score = 0;
	cout << "请输入一个分数:" << endl;
	cin >> score;

	//2.打印用户输入的分数
	cout << "您输入的分数为:" << score << endl;

	//3.判断分数:如果大于600,考上一本;如果大于500,考上二本;如果大于400,考上三本;否则,未考上大学
	if (score > 600)  //要注意的是,在if判断语句后面,不要加分号
	{
		cout << "恭喜您考上一本大学!" << endl;
	}
	else if (score > 500)  //要注意的是,在if判断语句后面,不要加分号
	{
		cout << "恭喜您考上二本大学!" << endl;
	}
	else if (score > 400)  //要注意的是,在if判断语句后面,不要加分号
	{
		cout << "恭喜您考上三本大学!" << endl;
	}
	else
	{
		cout << "很遗憾,您未考上大学!" << endl;
	}

	system("pause");

	return 0;

}

请输入一个分数:
546
您输入的分数为:546
恭喜您考上二本大学!

​  嵌套if语句:在if语句中,可以嵌套使用if语句,达到更精确的条件判断。

  案例需求:

  • 提示用户输入一个高考考试分数;
  • 根据分数做出判断:分数如果大于600分视为考上一本,大于500分考上二本,大于400考上三本,其余视为未考上本科;
  • 在一本分数中,如果大于700分,考入北大;大于650分,考入清华;大于600考入人大。

   嵌套if语句的实例如下所示。

#include<iostream>
using namespace std;

int main()
{

	/*
	-提示用户输入一个高考考试分数;
    - 根据分数做出判断:分数如果大于600分视为考上一本,大于500分考上二本,大于400考上三本,其余视为未考上本科;
    - 在一本分数中,如果大于700分,考入北大;大于650分,考入清华;大于600考入人大。
	*/

	//1.用户输入分数
	int score = 0;
	cout << "请输入一个分数:" << endl;
	cin >> score;

	//2.打印用户输入的分数
	cout << "您输入的分数为:" << score << endl;

	//3.判断
	//如果大于600,考上一本;
		//大于700,北大;
		//大于650,清华;
		//其余,人大;
	//如果大于500,考上二本;
	//如果大于400,考上三本;
	//否则,未考上大学
	if (score > 600)  //要注意的是,在if判断语句后面,不要加分号
	{
		cout << "恭喜您考上一本大学!" << endl;
		if (score > 700)
		{
			cout << "您能考入北大!" << endl;
		}
		else if (score > 650)
		{
			cout << "您能考入北大!" << endl;
		}
		else
		{
			cout << "您能考入人大!" << endl;
		}
	}
	else if (score > 500)  //要注意的是,在if判断语句后面,不要加分号
	{
		cout << "恭喜您考上二本大学!" << endl;
	}
	else if (score > 400)  //要注意的是,在if判断语句后面,不要加分号
	{
		cout << "恭喜您考上三本大学!" << endl;
	}
	else
	{
		cout << "很遗憾,您未考上大学!" << endl;
	}

	system("pause");

	return 0;

}

请输入一个分数:
710
您输入的分数为:710
恭喜您考上一本大学!
您能考入北大!

  练习案例: 三只小猪称体重。有三只小猪ABC,请分别输入三只小猪的体重,并且判断哪只小猪最重?

在这里插入图片描述
   练习案例的代码如下所示。

#include<iostream>
using namespace std;

int main()
{

	//三只小猪称体重,判断哪只小猪最重

	//1.创建三只小猪的体重变量
	int num1 = 0;
	int num2 = 0;
	int num3 = 0;

	//2.让用户输入三只小猪的重量,并打印在屏幕上
	cout << "请输入小猪A的体重:" << endl;
	cin >> num1;

	cout << "请输入小猪B的体重:" << endl;
	cin >> num2;

	cout << "请输入小猪C的体重:" << endl;
	cin >> num3;

	cout << "小猪A的体重为:" << num1 << endl;
	cout << "小猪B的体重为:" << num2 << endl;
	cout << "小猪C的体重为:" << num3 << endl;

	//3.判断哪只重
	//先判断A和B哪只重;
	if (num1 > num2)  //A比B重
	{
		if (num1 > num3)  // A比C重
		{
			cout << "小猪A最重!" << endl;
		}
		else  // C比A重
		{
			cout << "小猪C最重!" << endl;
		}
	}
	else  //B比A重
	{
		if (num2 > num3)  // B比C重
		{
			cout << "小猪B最重!" << endl;
		}
		else  // C比B重
		{ 
			cout << "小猪C最重!" << endl;
		}
	}

	system("pause");

	return 0;

}

请输入小猪A的体重:
100
请输入小猪B的体重:
180
请输入小猪C的体重:
150
小猪A的体重为:100
小猪B的体重为:180
小猪C的体重为:150
小猪B最重!

2.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;  // a = 100
	cout << "a = " << a << endl;
	cout << "b = " << b << endl;

	system("pause");

	return 0;

}

c = 20
a = 100
b = 20

  总结:和if语句比较,三目运算符优点是短小整洁,缺点是如果用嵌套,结构不清晰。

2.3 switch语句

  switch语句的作用: 执行多条件分支语句。

  switch语句提供了一条便利的途径使得我们能够在若干个固定选项中做出选择。

  switch语句的语法:

switch(表达式)

{

	case 结果1:执行语句;break;

	case 结果2:执行语句;break;

	...

	default:执行语句;break;

}

  实例如下所示。

#include<iostream>
using namespace std;

int main()
{
	//switch语句
	//给一个电影进行打分:10~9  经典;8~7 非常好;5~6 一般;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;

}

请给电影进行打分:
9
您打的分数为:9
您认为此电影是经典!

请给电影进行打分:
6
您打的分数为:6
您认为此电影一般!

请给电影进行打分:
3
您打的分数为:3
您认为此电影是烂片!

  if 和 switch 的区别?
  总结: 与if语句相比,对于多条件判断时,switch的结构清晰,执行效率高,缺点是switch语句中表达式类型只能是整型或者字符型,不可以判断区间。需要注意的是,case里如果没有break,那么程序会一直向下执行。

  接下来的循环结构和跳转语句部分的详细内容见C++基础入门(四)—— 程序流程结构(下)

3. 循环结构

4. 跳转语句

5. 总结

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值