计算机存储单位和网络

计算机存储介质

计算机存储介质是指用于存储计算机数据和程序的物理媒介,可以将数据、文件、程序等信息保存在其中,以便随时读取和使用。

寄存器

寄存器是中央处理器内的组成部分。寄存器是有限存贮容量的高速存贮部件,它们可用来暂存指令、数据和地址。寄存器又分为内部寄存器与外部寄存器。

高速缓冲存储器(Cache)

Cache位于CPU与内存之间,是一个读写速度比内存更快的存储器。

作用:

1.当CPU向内存中写入或读出数据时,将数据存储在高速缓存中,可以减少处理器访问主存储器的次数,从而提高数据的访问速度和系统的响应速度。

2.主存储器(RAM)和中央处理器(CPU)之间存在显著的速度差异,主存储器的访问速度比处理器慢很多,高速缓冲存储器的引入可以缓解处理器和主存速度不匹配的问题,使得处理器与主存之间的速度差异得以平衡,提高系统整体性能。

内存储器

  • 只读存储器(ROM)

ROM表示只读存储器(Read Only Memory),在制造ROM的时,信息(数据或程序)就被存入并永久保存。这些信息只能读出,一般不能写入,即使机器掉电,这些数据也不会丢失。ROM一般用于存放计算机的基本程序和数据,如BIOS ROM。

  • 随机存储器(RAM)

随机存储器(Random Access Memory)表示既可以从中读取数据,也可以写入数据。当机器电源关闭时,存于其中的数据就会丢失。计算机通常使用内存条(SIMM)就是将RAM集成块集中在一起的一小块电路板,它插在计算机中的内存插槽上,以减少RAM集成块占用的空间。

外存储器

  • 固态硬盘(SSD)

固态硬盘是一种使用闪存存储技术的存储设备,它的特点是读写速度非常快,价格相对较高,容量相对较小。

  • 机械硬盘(HDD)

硬盘是计算机用于长期存储数据的地方。它的特点是容量大、价格便宜,但是读写速度相对较慢。

  • 光盘

光盘是一种使用激光读写的存储介质,不受磁场干扰。它的特点是容量相对较大,但是读写速度较慢,而且只能写一次。

  • 磁带

磁带是一种使用磁性记录技术的存储介质,它的特点是容量非常大,但是读写速度较慢,主要用于备份和长期存储数据。

  • U盘

U盘是一种小型、便携式的存储设备,它的特点是体积小、重量轻、价格便宜,但是容量相对较小。

存储单位

在计算机内部,信息都是釆用二进制的形式进行存储、运算、处理和传输的。信息存储单位有位、字节和字等几种。各种存储设备存储容量单位KB、MB、GB和TB等几种。

位(bit)是计算机能够存储信息的最小单位。二进制中的一个数位,可以使 0 或 1。

字节( Byte )是计算机存储信息的基本单位,1 字节(Byte) 等于 8 位(bit)。

位(bit)

位(bit)是计算机能够存储信息的最小单位。

字节(byte)

字节( byte )是计算机存储信息的基本单位。1 字节Byte 等于 8 位bit。

更大的存储单位

单位名称 换算关系
千字节(KB) 1 KB = 1024 B
兆字节(MB) 1 MB = 1024 KB
吉字节(GB) 1 GB = 1024 MB
太字节(TB) 1 TB = 1024 GB

图像存储

如何计算一张图片大小

一张图片大小(单位为bit) = 水平像素数 × 垂直像素数 × 位深度

位深度:存储图片一个像素需要消耗多少位。可能是4位、8位、24位、32位。 img

例:存储一张2048 * 1024像素的32位真彩色图像,需要多大内存?

答:2048 * 1024 * 32 bit = 8 MB

分辨率

分辨率是指每英寸图像内像素点的个数,单位为PPI(Pixels Per Inch);像素点越多,分辨率越高,图像越清晰。

计算机网络

网络的定义

计算机网络,就是利用通信线路和设备,把分布在不同地理位置上的多台计算机连接起来,是现代通信技术与计算机技术相结合的产物。

网络中的计算机与计算机之间的通信依靠协议进行。协议是计算机收、发数据的规则。最重要的一系列网络协议当属TCP/IP,包括IP(Internet Protocol)和TCP(Transmission Control Protocol)两部分。

网络的主要功能是资源共享、信息传输、分布处理、综合信息服务。

备考建议

计算机网络概念实在太多(考察的话,相信就是2分,所以读一读有个印象就好),重点就记:

1.LAN,MAN,WAN都表示什么。

2.IP地址合法性

3.IP域名

网络的分类

1.按照地理范围进行分类:局域网(LAN)、城域网(MAN)、广域网(WAN)

局域网(Loacl Area Network):一般局限在一千米范围内,传输速率较高,误码率低,结构简单,容易实现。

城域网(Metropolitan Area Network):范围为几千米到几十千米以内。

广域网(Wide Area Network):范围在几十千米到几千千米以上。

MAN和WAN一般都是由多个LAN构成的。

2.按拓扑结构

分为星型、总线型、环型、树型、网状型,网络拓扑结构是指计算机网络节点和通信链路所组成的几何形状。

img

因特网(Internet)是当今世界上规模最大、用户最多、影响最广泛的计算机互联网络。因特网上联有大大小小成千上万个不同拓扑结构,无固定形式。

IP地址

在考级中,IP地址方便出题考察。

首先看概念,IP地址,是用于标识Internet网络上节点的32位地址,未来还将逐步推广V6版本,增加到128位(分8组,每组16位)。对于Internet网络上的每个节点,都必须指派一个唯一的地址,它由网络ID和唯一的主机ID组成。该地址通常被分为4组,每组(8位二进制)数字使用十进制来表示,数字之间以点分隔(例如:192.168.7.27)。

Internet的IP地址分成A、B、C、D、E五类,其中A、B、C为常用类,都由网络ID和主机ID两个部分组成,网络ID也叫网络地址,标识大规模TCP/IP网际网络(由网络组成的网络)内的单个网络,连接到并共享访问同一网络的所有系统的在其完整的IP地址内都有一个公用的网络ID,这个ID也用于唯一地识别大规模的网际网络内部的每个网络;主机ID,也叫作主机地址,识别每个网络内部的TCP/IP节点(工作站、服务器、路由器或其他TCP/IP设备),每个设备的主机ID唯一地识别所在网络内的单个系统。

图片

IP地址的表示方法:采用点分十进制记法,即将32位IP地址中的每8位,用等值的十进制表示,并在中间加上一个点,每组数字的取值范围只能是0到255。

例如:10000001 00001011 00000011 00011111,四段八位二进制数分别对应129、11、3、31,其对应的IP地址就是129.11.3.31。

IP 地址域名

由于人们很难记住这些数字IP地址,因此出现了域名系统(DNS),它可以将IP地址与易于记忆的域名相互映射。

域名是由层次结构的多个标签(label)组成的,每个标签之间用“.”(点号)分隔。根据域名的层次结构,可以将域名分为几个级别,其中最高级别的域名是顶级域名(TLD,Top-Level Domain),它是域名系统中最高一级的域名。目前已经有多种顶级域名,包括:

  1. 国家顶级域名(ccTLD):国家顶级域名是根据国家或地区划分的域名,例如.cn表示中国、.us表示美国、.jp表示日本等。
  2. 通用顶级域名(gTLD):通用顶级域名是不区分国家或地区的域名,例如.com表示商业、.org表示非盈利组织、.net表示网络服务等。
  3. 基础设施域名(ARPA):基础设施域名是用于互联网基础设施的域名,包括.in-addr.arpa表示IP地址逆向解析、ip6.arpa表示IPv6地址逆向解析等。

除了顶级域名外,还有第二级(二级域名)、第三级(三级域名)等级别的域名,例如www.example.com中的example.com就是一个二级域名。不同级别的域名也可以通过DNS系统进行解析,最终映射到对应的IP地址,实现网络连接和通信。

TCP/IP四层模型与OSI七层模型

OSI七层模型

OSI 七层模型是国际标准化组织提出一个网络分层模型,其大体结构以及每一层提供的功能如下。

img

TCP/IP

网络中的计算机与计算机之间的通信依靠协议进行。协议是计算机收、发数据的规则。最重要的一系列网络协议当属TCP/IP,包括IP(Internet Protocol)和TCP(Transmission Control Protocol)两部分。其中TCP是指传输控制协议,IP是指网络协议。

TCP/IP四层模型

img

语言特性

变量命名规则

首先明确一个概念,变量名是一个标识符,并遵守标识符命名规则。

C++语言中所谓标识符,是用来表示变量、函数、类型和其他用户定义实体的名称。

标识符的命名规则如下:

  • 以英文字母或下划线开头,不能以数字开头。

int count;

int 5c; 数字开头 ❌

int !c; 除了下划线之外的符号开头 ❌

int _c; 下划线开头 ✅

c; 命名时不指定类型 ❌

  • 标识符只能包含英文字母、数字和下划线。

int 哈哈; 中文不行 ❌

  • 标识符不能是C++中的关键字或保留字,例如if、while、int等。
  • 标识符区分大小写。

什么是关键字?

C++语言中的关键字是指在语言中具有特殊含义和用途的单词,它们在编程中具有特殊的语法和语义,不能作为标识符或其他自定义名称使用。

关键字有哪些?

C++语言中的关键字有以下这些:

  1. 基本数据类型关键字:bool、char、short、int、long、float、double、void。
  2. 控制语句关键字:if、else、switch、case、default、for、while、do、break、continue、goto、return。

考级主要看到2就可以了。

  1. 存储类关键字:auto、register、static、extern、mutable。
  2. 类关键字:class、struct、union、typedef、enum、virtual、public、protected、private、friend、operator、new、delete、this、const、volatile。
  3. 其他关键字:namespace、using、template、typename、try、throw、catch、typeid、dynamic_cast、static_cast、const_cast、reinterpret_cast。

在编写C++程序时,应该避免使用关键字作为标识符或其他自定义名称,以免产生语法错误或混淆。

什么是运算符?

在编程语言中,运算符是用来执行特定操作的符号或关键字,它们能够对一个或多个操作数进行计算、比较、逻辑判断等操作。运算符可以用于数学运算、逻辑运算、位运算等方面。

是2级考试的重要出题点!和数据类型结合后有很强迷惑性,容易失分。

运算主要分类

C++中的运算符可以分为以下几类:

  1. 算术运算符:加法运算符(+)、减法运算符(-)、乘法运算符(*)、除法运算符(/)、取模运算符(%)。
  2. 比较运算符:等于运算符(==)、不等于运算符(!=)、大于运算符(>)、小于运算符(<)、大于等于运算符(>=)、小于等于运算符(<=)。
  3. 逻辑运算符:逻辑与运算符(&&)、逻辑或运算符(||)、逻辑非运算符(!)。
  4. 赋值运算符:赋值运算符(=)、加等于运算符(+=)、减等于运算符(-=)、乘等于运算符(*=)、除等于运算符(/=)、模等于运算符(%=)、按位与等于运算符(&=)、按位或等于运算符(|=)、按位异或等于运算符(^=)、左移等于运算符(<<=)、右移等于运算符(>>=)。
  5. 条件运算符:三目运算符(?:)。
  6. 其他运算符:取地址运算符(&)、取值运算符(*)、sizeof运算符。

在C++中,运算符优先级和结合性也是非常重要的。优先级指的是在表达式中运算符的执行顺序,优先级高的运算符会先被执行;而结合性指的是在表达式中当有多个同级别的运算符时,它们的执行顺序是从左到右还是从右到左。因此,在编写C++程序时需要注意运算符的优先级和结合性,以确保表达式的执行顺序符合预期。

拓展阅读:运算符优先级

Info

这里给出一个运算符优先级的列表,但是2级很可能不考,所以只作为拓展阅读。

C++中的运算符优先级指的是在一个表达式中运算符的执行顺序。简单来说,优先级高的运算符会先被执行。如果有多个运算符,它们的优先级不同,可以使用括号来改变它们的优先级。

下面是C++中常见运算符的优先级列表,从高到低排列:

  1. 成员选择运算符:.->
  2. 递增和递减运算符:++--
  3. 强制类型转换运算符:static_cast、dynamic_cast、const_cast、reinterpret_cast
  4. 算术运算符:*/%
  5. 二元加减运算符:+-
  6. 移位运算符:<<>>
  7. 关系运算符:>>=<<=
  8. 相等性运算符:==!=
  9. 按位与运算符:&
  10. 按位异或运算符:^
  11. 按位或运算符:|
  12. 逻辑与运算符:&&
  13. 逻辑或运算符:||
  14. 条件运算符:?:
  15. 赋值运算符:=+=-=*=/=%=<<=>>=&=^=|=

注意:在表达式中使用括号可以改变运算符的优先级。括号中的运算符先被执行,从而改变了整个表达式的执行顺序。

计算机语言分类

  • 机器语言:计算机能识别的语言,由二进制数字 0/1组成,速度快但人类编码难度高,一般由计算机自动转换。
  • 汇编语言:用助记符代替机器指令的操作码(亦称为符号语言),计算机不能直接识别,需要用编译器进行编译。在不同的设备中,汇编语言对应着不同的机器语言指令集,通过汇编过程转换成机器指令,在不同平台之间不可直接移植。
  • 高级语言:如今盛行的编程语言(C++,Python,Java 等),需要用编译器难度小,分为编译型语言解释型语言两种编译方式。
    • 编译型语言(C、C++、Pascal):执行之前需要一个专门的编译过程,把程序编译成为机器语言的文件,运行时不需要重新翻译,直接使用编译的结果就行了。程序执行效率高,依赖编译器,跨平台性较差。
    • 解释型语言(PHP、Python):编写的程序不进行预先编译,在运行程序的时候,解释性语言必须先解释再运行。
    • 面向过程(C、Basic、Pascal):是一种以过程为中心的编程思想,是一种自顶而下的编程模式。在面向过程的开发范式中,把问题分解成一个个步骤,每个步骤用函数实现,依次调用即可(强调步骤)。
    • 面向对象(Java、C++、C#、Python):将问题分解成一个个步骤,对每个步骤进行相应的抽象,形成对象,通过不同对象之间的封装、继承、多态等方法,组合解决问题。通过抽象出对象的方式这种方式编写出来的代码的扩展性、可维护性都很高(强调对象)。

数据类型

什么是数据类型?

在编程语言中,数据类型是用来定义数据的种类和取值范围的。不同的数据类型能够存储不同类型的数据,比如整数、小数、字符、布尔值等等。

在C++中,基本数据类型包括整数类型(int、short、long、long long)、浮点类型(float、double、long double)、字符类型(char)、布尔类型(bool)等。

基本数据类型及其占位符

输入占位符 输出占位符 所占字节数 数据范围
unsigned int %d 4 00 ~ 232−1232−1
int −231−231 ~ 231−1231−1
long long %lld 8 −263−263 ~ 263−1263−1
float %f 4 1.175494351E−381.175494351E−38 ~ 3.402823466E+383.402823466E+38(实际精度6~7位)
double %lf 8 2.2250738585072014E−3082.2250738585072014E−308 ~ 1.7976931348623158E+3081.7976931348623158E+308(实际精度15~16位)
char %c %c%d(输出ASCII码) 1 00 ~ 127127
bool %d(输出 0 或 1) 00、11

ASCII码表

ASCII码表(ASCII码表,全称:American Standard Code for Information Interchange,即美国信息交换标准代码),是由美国国家标准局(ANSI)制定的一套字符编码标准,用于在计算机和其他设备中存储和传输文本信息。

ASCII码表定义了128个字符的编码方式,其中包括32个不可打印的控制字符和96个可打印字符。这些字符包括英文字母、数字、标点符号、控制字符等等,每个字符都有一个唯一的7位二进制编码,因此可以被计算机识别和处理。

常用的判断有三种

  • 判断一个字符ch是否为小写字母
if (ch >= 'a' && ch <= 'z')` 或者直接按ASCII码判断 `if (ch >= '97' && ch <= '122')
  • 判断一个字符ch是否为大写字母
if (ch >= 'A' && ch <= 'Z')` 或者直接按ASCII码判断 `if (ch >= '65' && ch <= '90')
  • 判断一个字符ch是否为数字字符
if (ch >= '0' && ch <= '9')` 或者直接按ASCII码判断 `if (ch >= '48' && ch <= '57')

什么是类型转换?

把10个苹果均分给4个小朋友,不能切开得情况,每个小朋友分到几个苹果呢?

答案是2个。C++语言在计算 10 / 4 时直接得到它们的商2,但是如果表达式写为10 / 4.0,则得到结果2.5.这是因为表达式变成了一个整型和浮点型之间的除法,其结果也是浮点型。

类型转换提供了将一种数据类型转换为另一种数据类型的方式。类型转换可以通过自动类型转换和强制转换来实现。

自动类型转换

隐式转换在编写代码时不需要显式地进行转换,而是由编译器自动完成的。

  • 赋值运算中的自动转换:如果赋值运算符两侧的类型不一致,在赋值时会进行自动类型转换。
    • 将浮点型数据赋值给整型变量时,舍弃浮点数的小数部分。
int i = 8.24;//i的值为8,在内存中以整数形式保存
  • 将整型赋值给浮点型变量时,数值不变,但以浮点数的形式存储到变量中
float f = 35;//先将35转换成35.00000,再存储到f中。
double d = 35;//则将35转换成35.00000000000000,然后以双精度浮点数形式存储到d中
  • 将字符型数据赋值给整型变量时,由于字符只有1个字节,因此将字符数据放到整型变量的低八位中,
int i = 'a';//i的值为97,在内存中以整数形式保存
  • 将其他整形变量赋值给char型变量时,只将其低8位原封不动地送到char型变量(高位截断)。
char c = 289;//以%d形式输出,c的值为33,以%c形式输出,得到字符'!'(其ASCII码值为33)的值为33,以%c形式输出,得到字符'!'
  • 算术表达式的自动类型转换:在算术表达式进行运算的过程中,不同类型的数据要自动转换成同一类型再进行运算。
include <iostream>
using namespace std;
int main()
{
	char c = 'a';
    int i = 3;
	double d = 3.14;
    cout << c + i + d << endl;//103.14
  	return 0;
}

强制类型转换

显式转换需要在代码中明确地指定要进行的类型转换。

cpp复制#include <iostream>
using namespace std;

int main() {
    double f = 5.5;
    double z = (int)f;
    printf("%lf", z); 
    return 0;
}

代码运行后的值为5.000000,和你想的一样吗?

首先将5.5赋值给了double类型变量f。接下来将变量f的值强制类型转换为整型(舍弃了小数部分,变为5)再赋值给一个浮点型。最后通过printf输出,默认显示6位小数,所以结果为5.000000。

程序中的(int) 就是强制类型转换。

ASCII码

编码的概念

编码是将一种语言或符号系统转换为另一种语言或符号系统的过程。在计算机科学中,编码指的是将文本或图像等信息转换为计算机可识别的二进制码的过程。这种二进制码是由0和1组成的编码,也被称为数字编码。常用的编码方式有ASCII、Unicode等。

ASCII编码原理

在计算机内部,所有的信息最终都表示为一个二进制的字符串。每一个二进制位(bit)有0和1两种状态。上个世纪60年代,美国制定了一套字符编码,对英语字符与二进制位之的关系,将128个字符的编码做了统一规定。这被称为ASCII码。

常用ASCII编码

ASCII(美国信息交换标准代码)是一种较为早期的编码方式,它采用7位二进制代码,可以表示128个字符,包括数字、字母、符号等。

ASCII

几个常见字母的ASCII码大小: 'A'为65,'a'为97,'0'为 48;

常见ASCII码的大小规则:数字 < 大写字母< 小写字母。

数学函数

<cmath>头文件中包含了很多数学函数,下面介绍几个2级有可能考察的函数:

abs(x):求x的绝对值。

cpp复制#include <iostream>
#include <cmath>
using namespace std;

int main() {
    int a = -10;
    cout << abs(a); // 输出为10 
    return 0;
}

pow(x, y):求x的y次幂。

cpp复制#include <iostream>
#include <cmath>
using namespace std;

int main() {
    int a = 2, b = 5;
    cout << pow(a, b); // 输出为32
    return 0;
}

sqrt(x):求x的平方根。

cpp复制#include <iostream>
#include <cmath>
using namespace std;

int main() {
    int a = 25;
    cout << sqrt(a); // 输出为5 
    return 0;
}

ceil(x):求不小于x的最小整数。

cpp复制#include <iostream>
#include <cmath>
using namespace std;

int main() {
    int a = 5.1;
    cout << ceil(a); // 输出为6 
    return 0;
}

floor(x):求不大于x的最大整数。

cpp复制#include <iostream>
#include <cmath>
using namespace std;

int main() {
    int a = 5.1;
    cout << floor(a); // 输出为5 
    return 0;
}

round(x):将x四舍五入到最接近的整数。

cpp复制#include <iostream>
#include <cmath>
using namespace std;

int main() {
    double a = 5.5;
    double b = 5.4;
    cout << round(a) << endl; 
    cout << round(b);
    // 结果为 6 5
    return 0;
}

需要注意的是,这些函数在进行计算时都需要将参数转换为正确的数据类型,否则可能会出现不正确的结果。此外,对于大多数函数,它们的返回值都是浮点数类型。

分支和循环结构

选择结构

选择结构是指根据判断条件的结果来控制程序的执行流程。需要使用条件语句:if语句。

1. if 语句

条件语句可以表示:如果...,否则... 的含义

cpp复制if (条件一){
	//动作一
}
else{
	//动作二
}

以上条件语句 if...else... 的含义为:如果条件一为真做动作一,否则做动作二。 img

cpp复制if (条件一){
	//动作一
}
else if (条件二){
	//动作二
}
else{
	//动作三
}

以上条件语句 if... else if ... else ... 的含义为:如果条件一为真做动作一,否则如果条件二为真做动作二,否则做动作三。

img

此外条件语句之间可以进行嵌套:

cpp复制if (条件1){
	if (条件2){
		//动作
	}
}

以上条件语句的含义为:如果条件一和条件二都为真则执行动作,否则什么都不做。

img

2. switch...case... 语句

同样的,switch...case...语句也是一种条件语句,常用于分支很多的情况。

cpp复制switch (条件语句){
	case 标签1:
		动作1;
	case 标签2:
		动作2;
	default:
		动作3;
}

特殊的,条件语句应为整数类型表达式、整型变量或整型常量。标签必须为整数类型的常量。当执行switch语句时,根据条件语句的结果选择相对应的标签,从标签处开始执行动作。default是指当所有标签都不满足时,我们执行default的内容。

cpp复制int b = 3;
switch (b){
	case 1:
		b = b * -1;
	case 3:
		b++;
	default:
		b = b / 2;
}
printf("%d", b); // 此时输出为 2

以上程序会输出2,执行了标签值为3和default里面的语句。当在以上程序中加入break语句,程序的输出会发生变化,以下程序只会执行一个动作。

cpp复制int b = 3;
switch (b){
	case 1:
		b = b * -1;
		break;
	case 3:
		b++;
		break;
	default:
		b = b / 2;
		break;
}
printf("%d", b); // 此时输出为 4

循环结构

循环结构是指在程序中需要重复执行相同的一段代码、反复执行某个功能,常见的循环有:while循环,for循环,还有do...while...循环。

1. while 循环

cpp复制while (判定条件){
	//执行的动作;
}

当条件为真时,程序会循环执行动作。

img

cpp复制int i = 0;        //起点
while (i < 3){    //终点     
	printf("你好\n");      
	i = i + 1;    //步长  
}

控制循环执行次数的关键是循环变量 i,出现在循环的起点、终点、步长三个部分,满足条件的 i 值个数,就是循环次数。以上代码会输出3次你好。

cpp复制while (n--){ //循环执行n次动作
	//动作
}
cpp复制while (!0){ //死循环
	//动作
}

⚡快问快答 题目数量X2

以下程序会输出什么?

cpp复制int i = 30; 
while (i >= 1){ 
	if (i % 7 == 0){ 
		printf("%d ", i); 
	}
	i--; 
}

答案: 28 21 14 7

以下程序执行多少次循环?

cpp复制double n = 20;
while (n > 5){
	n = n / 2;
	cnt = cnt + 1;
}
printf("%d", cnt);

答案:2

2. for 循环

for循环的循环头会确定循环的次数,以下代码会执行3次动作。

cpp复制for (int i = 0; i < 3; i++){
	//执行动作
}

for循环的头部有起点、终点、步长,这三句话是怎样执行的呢?

cpp复制for (初始条件1; 判断条件2; 递增/减条件3) {
	循环体4;
}

执行顺序:12432432432......32。初始条件1只会在第一次执行,判断条件2是否成立,只要条件成立就做循环体4,并执行递增/减条件3,然后再次判断条件2,只要条件2成立,循环做以上动作,否则结束程序。

Optional

下面的for循环没有条件部分,是死循环。

cpp复制for (int t = 1; ; t++){

}

3. do...while 循环

cpp复制do {
    //执行的动作
}while(判断条件);

do ... while ... 语句会先执行一次动作,之后判断条件是否成立,只要条件成立,就会循环执行动作。所以do ... while ... 循环会比 while 循环多执行一次动作。

流程图的方式一般表示为:

img

4. break 与 continue 语句

循环语句一般会和break、continue语句搭配使用。

不同点 相同点
break语句 直接结束当前循环 只对一层循环起作用
continue语句 结束某次循环,直接进行下一次循环