《C++语言入门经典》一第3章 重要的逻辑工具——判断与循环 3.1 条件判断

简介: 本节书摘来自华章出版社《C++语言入门经典》一书中的第3章,第3.1节,作者 郭鑫 顾彦玲,更多章节内容可以访问云栖社区“华章计算机”公众号查看

第3章 重要的逻辑工具——判断与循环

视频讲解:90分钟

一个大的问题需要分成若干个小的问题才能够得到解决。C++语言提供了分支语句与循环
语句。当需要一个条件影响到问题的结论时,我们需要判断语句;当需要执行若干个相同的指
令时,我们需要循环语句。

通过学习本章,读者可以达到以下学习目的:
掌握3种形式的判断语句
了解条件运算符与判断语句的转换
掌握switch分支语句
掌握判断语句的嵌套
了解3种循环语句
掌握各种循环的区别
了解循环的跳转
掌握循环的嵌套

3.1 条件判断

计算机的主要功能是提供计算功能,但在计算的过程中会遇到各种各样的情况,针对不同
的情况会有不同的处理方法,这就要求程序开发语言要有处理决策的能力。低级语言使用判断
指令和跳转指令实现决策,高级语言使用选择判断语句实现决策。为描述决策系统的流通性,
设计人员研发出了流程图。流程图使用图形方式描述系统在不同状态下的不同处理方法。开发
人员使用流程图表现程序的结构。

主要的流程图符号如图3.1所示。
使用流程图描述十字路口转向的决策时,利用方位做决定,判断是否是南方,如果是南
方,就向前行;如果不是南方,就寻找南方,如图3.2所示。
image

程序中使用选择判断语句来做决策,选择判断是编程语言的基础,在C++语言中有3种形
式的选择判断语句,同时提供了switch 语句,简化了多分支决策的处理。下面对选择判断语句
进行介绍。

3.1.1 if语句

if关键字是实现C++组成判断语句的常用方法,形式如下:
if(表达式)
语句
其中,表达式一般为关系表达式,表达式的运算结
果应该是真或假(true或false)。如果表达式为真,就
执行语句;如果表达式的值为假,就跳过,执行下一条语
句。过程如图3.3所示。
【例3.1】 判断输入的数值是否为奇数。
实例位置:光盘MR源码第3章3.1

#include "stdafx.h" 
#include <iostream> 
using namespace std;
void main()
{ 
int iInput;
cout << "Input a value:" << endl;
cin >> iInput; // 输入一整型数 
if(iInput%2!=0)
cout << "The value is odd number" << endl; 
}

程序执行过程的流程图如图3.4所示。
程序分两步执行。
(1)定义一个整型变量iInput,然后使用cin获得用
户输入的整型数据。
(2)对变量iInput的值与2进行%运算,如果运算结
果不为0,表示用户输入的是奇数,这时输出字符串“这
个整数是奇数”;如果运算结果为0,则不进行任何输
出,程序执行完毕。
说明整数与2进行%运算,结果只有0或1两种情况。
要注意第一种形式的判断语句的书写格式。
如判断语句

if(a>b) 
max=a;

可以写成

if( a>b ) max=a;

image

但不建议使用“if(a>b)max=a;”这种书写方式,因为这种方式不便于阅读。
判断中的语句可以是复合语句,也就是说,可以用花括号括起多条简单语句。例如:

if(a>b)
{ 
tmp=a;
b=a; 
a=tmp;
}

3.1.2 if-else语句

在if关键字后使用else关键字表示的是:当程序
进入到if-else 语句中,会根据if 语句的判断内容进行
操作,若为真(true)则执行if语句中的内容;若为
假(false),则执行else语句的内容。其执行过程如
图3.5所示。
【例3.2】 根据分数判断是否优秀。
实例位置:光盘MR源码第3章3.2

#include "stdafx.h" 
#include <iostream> 
using namespace std;
void main()
{ 
int iInput;
cout<<"大于90为优秀成绩"<<endl; 
cout<<"请输入学生成绩"<<endl; 
cin >> iInput;
if(iInput>90)
cout << "成绩优秀" << endl; 
else 
cout << "成绩非优秀" << endl; 
}

用流程图来描述判断语句的执行过程,如图3.6所示。
该程序需要和用户交互,用户输入一个数值,将该
数值赋值给iInput变量,然后判断用户输入的数据是否
大于90,如果大于90,输出字符串“成绩优秀”,否则
输出字符串“成绩非优秀”。
可以看到,程序到此必然经过if或者else 当中的一
项。当else语句内容为空时,if-else与if语句实现的功能
是一样的。
【例3.3】 if-else语句的奇偶性判别。
实例位置:光盘MR源码第3章3.3

#include <iostream> 
using namespace std;
void main() 
......
....
if......else......

image

相关文章
|
22天前
|
存储 C++
基于C++的简易文件压缩与解压缩工具设计与实现
基于C++的简易文件压缩与解压缩工具设计与实现
14 3
|
25天前
|
数据可视化 关系型数据库 编译器
【C/C++ 单线程性能分析工具 Gprof】 GNU的C/C++ 性能分析工具 Gprof 使用全面指南
【C/C++ 单线程性能分析工具 Gprof】 GNU的C/C++ 性能分析工具 Gprof 使用全面指南
99 2
|
23天前
|
IDE Linux 开发工具
一网打尽:C++远程调试工具和策略全指南
一网打尽:C++远程调试工具和策略全指南
66 2
|
25天前
|
算法 C++ 开发者
【C++ 20 并发工具 std::barrier】掌握并发编程:深入理解C++的std::barrier
【C++ 20 并发工具 std::barrier】掌握并发编程:深入理解C++的std::barrier
40 0
|
2天前
|
缓存 编译器 API
NumPy与其他语言(如C/C++)的接口实践
【4月更文挑战第17天】本文介绍了NumPy与C/C++的接口实践,包括Python与C/C++交互基础、NumPy的C API和Cython的使用。通过案例展示了如何将C++函数与NumPy数组结合,强调了内存管理、类型匹配、错误处理和性能优化的最佳实践。掌握这些技能对于跨语言交互和集成至关重要。
|
11天前
|
程序员 C++
C++语言模板学习应用案例
C++模板实现通用代码,以适应多种数据类型。示例展示了一个计算两数之和的模板函数`add&lt;T&gt;`,可处理整数和浮点数。在`main`函数中,展示了对`add`模板的调用,分别计算整数和浮点数的和,输出结果。
10 2
|
15天前
|
C++
C++ While 和 For 循环:流程控制全解析
本文介绍了C++中的`switch`语句和循环结构。`switch`语句根据表达式的值执行匹配的代码块,可以使用`break`终止执行并跳出`switch`。`default`关键字用于处理没有匹配`case`的情况。接着,文章讲述了三种类型的循环:`while`循环在条件满足时执行代码,`do/while`至少执行一次代码再检查条件,`for`循环适用于已知循环次数的情况。`for`循环包含初始化、条件和递增三个部分。此外,还提到了嵌套循环和C++11引入的`foreach`循环,用于遍历数组元素。最后,鼓励读者关注微信公众号`Let us Coding`获取更多内容。
19 0
|
25天前
|
Java API 开发工具
【软件设计师备考 专题 】C、C++、Java、Visual Basic、Visual C++等语言的基础知识和应用(三)
【软件设计师备考 专题 】C、C++、Java、Visual Basic、Visual C++等语言的基础知识和应用
30 0
|
25天前
|
Java 数据处理 数据库
【软件设计师备考 专题 】C、C++、Java、Visual Basic、Visual C++等语言的基础知识和应用(二)
【软件设计师备考 专题 】C、C++、Java、Visual Basic、Visual C++等语言的基础知识和应用
34 0
|
25天前
|
存储 算法 Java
【软件设计师备考 专题 】C、C++、Java、Visual Basic、Visual C++等语言的基础知识和应用(一)
【软件设计师备考 专题 】C、C++、Java、Visual Basic、Visual C++等语言的基础知识和应用
33 0