c语言程序设计
2021-12-16 09:38:27 1 举报
AI智能生成
程序设计与c语言 数据类型,运算符和表达式 顺序结构程序设计 分支机构程序设计 循环结构程序设计
作者其他创作
大纲/内容
程序设计与c语言
程序与程序设计语言
程序设计语言的发展
机器语言(采用的是二进制,特点:难学、难写、难记、难修改。)
编汇语言(特点:容易被人读懂,程序修改与维护也很改变,运行效率仅次于机器语言。缺点:十分依赖机器硬件,可移植性不好。)
高级语言(特点:易学、易用、易维护,人们可以更有效、更方便地用它来编制各种用途的计算机程序。)
非结构化的语言(只追求程序的执行效率,而不顾及程序的结构,使程序变的难以阅读和维护)
结构化的语言(程序必须由具有良好特性的基本结构)
面向对象的语言(程序变得更序设计方法的语言。容易,耗时更少,效率更高。)
c语言程序设计的特点
数据表达:(以表达实际问题中存在的复杂的数据结构。)
流程控制:(具备良好的数据表达能力,提供对不同类型的数据进行处理的手段)
顺序控制结构(一条语句执行完后,按自然顺序执行下一条语句)
分支控制结构(又称选择结构,常常需要根据不同的条件选择执行不同的语句)
顺序控制结构,分支控制结构和循环控制结构的共同特点:
①只有单一的入口和单一的出口;
②结构中的每个部分都有被执行的可能;
③结构内不应出现永不终止的死循环
①只有单一的入口和单一的出口;
②结构中的每个部分都有被执行的可能;
③结构内不应出现永不终止的死循环
循环控制结构(需要重复执行相同的语句
C语言的发展历史
1963年英国剑桥大学推出了CPL
1967年剑桥大学的Martin Richards对CPL语言进行了简化,推出了BCPL
1970年美国贝尔实验室的Ken Thompson对BCPL语言又做了进一步简化,设计出了更接近硬件的B语言
1972年工作于美国贝尔实验室的Dennis Ritchie在B语言的基础上设计出C语言
1973年,Dennis Ritchie和Ken Thompson对UNIX操作系统进行了重写
1983年,美国国家标准协会制定了一套C语言标准,称为ANSI C
c语言特点
优点
C语言语句简洁紧凑,使用方便灵活
运算符丰富,表达能力强
C语言程序可移植性高
生成的目标代码质量高,运行效率高
语言处理能力强
缺点
C语言对语法检查不严格
数据类型检查不严格
对数组下标越界不检查
C语言运算符较多,初学者很难掌握其运算的优先级与结合性。
C语言的约定
标识符
由字母、数字和下划线组成,其中第一个字符必须是字母或下划线
标识符中英文字母的大小写是有区别的
命名最好做到“见名知义”,增加程序的可读性
关键字
是 C语言规定的,赋予特定含叉和有专门用途的标识符
用户自定义标识符
程序中定义的变量名、数据类型名、函数名和符号常量名
预定义标识符
头文件和库函数中定义的一些标识符
分隔符
逗号:分隔变量名 空格:分隔各单词
C语言的语法成分
常量
常量是有数据类型的
变量
变量是自己定义
运算符算术运算符
单目运算符
双目运算符
输入与输出
C语言没有提供用于数据输入及输出的语句,所有的输入与输出都是通过系统提供的
c程序的编辑,编译,链接和运行
程序设计的任务
分析问题
设计算法
程序设计
运行并调试程序
分析程序运行结构
编写程序文档
数据类型,运算符和表达式
c语言的数据类型
基本类型
整形
字符型
实型(浮点型)
构造类型
数组类型
结构类型
共用体类型
枚举类型
指针类型
空类型
c语言的常量
直接常量
整型常量
整数
正整数
负整数
零
用十进制、八进制和十六进制表示
十进制表示:由数字0~9,正、负号组成
八进制表示:以0(数字0)为前缀,其后由数字0~7组成
十六进制表示:以0x或0X为前缀,其后由数字0~9和字母A~F(字母大小写均可)组成
实型常量
小数形式
由整数部分、小数点和小数部分组成
指数形式
由尾数部分、字母E或e和指数部分组成
字符型常量
字符常量指单个字符.用一对单引号及其括号所括起的字符来表示
特点
字符常量只能用单引号括起来.不能用双引号或其它括号
字符常量只能是单个字符,不能是字符串
字符可以是ASCH字符集中的任意字符。按ASCII码的大小,不同的字符之间存在着次序,以字符的ASCl1码值按升序连续排列
字符串常量
由一对双引号""括起来的零个或多个字符序列
可以使用空格字符、转义字符和其他字符,也可以使用汉字等文字符号
可以使用空字符
在内存中占用一段连续的存储单元,系统自动在每个字符串的尾部加 '\0'
作为字符串的结束标志
作为字符串的结束标志
c语言的变量
变量的定义
格式
类型说明符 变量名表
类型说明符必须是C语言中的有效数据类型,如int,float,double,char等 ,用于指定变量的类型,该类型决定了编译时分配给变量的内存单元的多少
变量名表可以由一个或多个变量名组成,各变量名之间用“,”分隔。变量名必须是合法的C语言标识符,变量名一般使用小写字母
变量的定义必须放在变量使用之前,一般在函数体开头部分进行定义
变量的初始化
允许在定义变量的同时对变量赋值,这个过程称为变量的初始化
变量初始化时需注意
对一个变量赋值之后,该值被储存在分配给变量的内存空间中
不允许对多个未定义的同类型变量连续初始化
初始化时,一般使“=”右边表达式的数据类型和“=”左边的变量的类型一致,如果不一致,系统会进行自动赋值转换
没有进行初始化的变量,其值是由定义时所使用的储存类型决定的。全局变量和static型变量的值是0或'\0',其它储存类型的局部变量的值是未知的
整型变量
短整型(short int)
占用字节数2
取值范围-32768~32768(-2^15~2^15_1)
整整(into)
占用字节数4
取值范围-2147483648~2147483647(-2^31~2^31-1)
长整型(long into)
占用字节数4
取值范围-2147483648~2147483648(-2^31~2^31-1)
无符号整型(unsigned into)
占用字节数2
取值范围0~4294967295(0~2^32-1)
无符号短整型(unsigned short into)
占用字节数4
取值范围0~65535(0~2^16-1)
无符号长整型(unsigned long int)
占用字节数4
取值范围0~4294967295(0~2^32-1)
实型变量
单精度(fioat型)
占用字节数4
取值范围3.4E-38~3.4E+38
双精度(double型)
占用字节数8
取值范围1.7E-308~1.7E+308
字符型变量
字符型变量的值是字符常量,即用单引号引用起来的单个字符。字符型变量的类型说明符是char
运算符和表达式
简单赋值运算符
最简单的赋值运算符就是“=”,它的作用是将一个数值赋给一个变量, 也可以将一个表达式的赋给一个变量
复合赋值运算符
赋值表达式
一般形式:变量=表达式
作用是将一个表达式的值赋给一个变量,因此赋值表达式具有计算和赋值的双重功能。需要注意:赋值运算符的左侧必须是一个变量
执行过程
计算赋值运算符右侧表达式的值。
将所计算出的值赋给赋值运算符左侧的变量。
区分赋值表达式和赋值语句的方法
赋值表达式的末尾没有分号,而赋值语句的末尾必须有分号,在一个表达式中可以包含一个或多个赋值表达式,但绝对不能包含赋值语句
注意
如果“=”左右两边类型不同,系统会按照赋值类型转换的原则将右边的类型转换成左边的类型
赋值表达式的右边也可以是一个复制表达式
算数运算符与算数表达式
基本的算数运算符
+加法运算符,为双目运算符,其功能是进行求和运算
-减法运算符,为单目运算符,功能是取负运算
*乘法运算符,为双目运算符,功能是进行求乘积运算
/除法运算符,为双目运算符,功能是进行求商运算
%求余运算符,为双目运算符,功能是进行求余数的运算
自曾,自减运算符
++自增运算符,为单目运算符,其功能是使变量的值自加1
①前缀方式:用于变量前面,它是“先计算,后使用”的
②后缀方式:用于变量后面,它是“先使用,后计算
--自减运算符,为单目运算符,功能是使变量的值自减1
①前缀方式:用于变量前面,它是“先计算,后使用”的
②后缀方式:用于变量后面,它是“先使用,后计算
算数运算符的优先级和结合性
单目运算符是右结合的,双目算术运算符是左结合
“++,--,-”>“*,/,%”>“+,-”,即单目运算符的优先级高于双目运算符,双目算术运算符中*,/,%的优先级高于+,-
在优先级相同的情况下,按规定的“结合性”进行处理
算数表达式
算术表达式是由算术运算符,运算对象和括号连接起来的式子,运算对象可以是常量,变量和函数。
通常数学表达式均可写成C语言的算术表达式,但也有些数学表达式无法直接用C语言的算术表达式写出,此时需要调用C语言中的数学函数来实现
表达式计算以后会得到一个确定的值和类型,其类型由所使用的具体运算符和运算对象决定
注意
表达式中的乘号不能省略,且表达式中的所有字符均应写在同一行上
在表达式中还可以使用多层圆括号
逗号运算符与逗号表达式
逗号运算符
功能是把多个表达式连接起来组成一个表达式,称为逗号表达式
一般形式:表达式1,表达式2,...,表达式n
逗号表达式的执行顺序是:从左到右依次计算每个表达式的值,并把最后一个表达式的值作为整个逗号表达式的值
逗号运算符是双目运算符,其优先级最低,是左结合的
并非所有出现逗号的地方都为逗号表达式,如在变量说明语句中,以及函数参数表中逗号只是用作各变量之间的分隔符
求字节数运算符
运算符sizeof用于计算数据类型所占的字节数,它是一个单目运算符,优先级高于双目运算符
一般格式
sizeof(表达式)或sizeof 表达式
sizeof(数据类型名)
数据类型转换
自动转换
不同数据在一起运算时,编译系统会自动进行转换
转换规则:把占用空间少的(低级)类型向占用空间多的(高级)类型转换以保证精度
强制转换
强制类型转换是采用强制类型转换运算符将某种数据类型强制转换成指定数据类型
一般形式:(类型说明符)(表达式)
功能:把表达式的运算结果强制转换成类型说明符指定的类型
强制类型转换需注意
需强制转换中的表达式一定要括起来,否则只对紧随括号后的量进行类型转
强制类型转换是一种不安全的转换,如果是从高级类型换成低级类型,会损失数据的精度
强制类型转换并不改变表达式中变量的类型
顺序结构程序设计
c语言的语句
说明语句
说明语句用于定义程序所使用到的变量与类型
表达式语句
表达式语句由表达式加上分号";"组成。
一般形式:表达式
分支语句
分支语句实现分支控制过程,根据条件与否执行不同的语句
分支结构
双分支if——else语句
多分支swith语句
循环语句
转向语句
转向语句有break语句,goto语句,contiue语句return语句
复合语句
用一对大括号{}诺干语句顺序组合在一起所形成的语句称为复合语句c语言中,除了复合语句外的其他所有语句都以分号结束
空语句
空语句只由一个分号构成
空语句一般用在程序的某个位置上在功能上并不执行任何实际操作。如空语句用于循环语句中的循环体时,可以实现延时功能
函数定义与调用
函数是完成特定功能得到小模块,是c语言唯一的一种子程序,常常在一个c程序中包含诺干个函数,复杂的任务调用这些函数来完成
输入与输出
c语言没有提供用于数据输入及输出功能的语句所有的输入和输出都是通过系统提供的有关函数来实现的
数据的输入和输出
输出函数(printf())和输入函数(scanf())
printf()函数
printf()函数是系统提供的用于在标准输出设备(屏幕)输出数据的库函数
一般调用格式为:
printf(”格式控制字符串”,输出项表列)
格式控制字符串用双引号括起来,表示输出的格式
输出项表列则是要输出的数据,这些数据可以是常量、变量或表达式。
格式控制字符串中包含两种信息
格式控制说明:按指定的格式输出数据,其格式为以%开头的格式控制字符,不同类型的数据采用不同的格式控制字符,以说明输出数据的类型、形式、长度、小数位数等
普通字符:在输出数据时,需要原样输出的字符
使用printf()函数进行数据输出时需注意
格式字符与输出项的类型要一一对应,不同类型的数据所使用的格式字符不同
一般情况下,格式字符与输出项的个数应相同。如果格式字符的个数多于输出项的个数,则多余的格式将输出不确定的值;如果格式字符的个数少于输出项的个数,则多余的输出项将不能输出
print()函数中可以没有输出项,此时print()函数只用来输出一个字符串;也可以有多个输出项,多个输出项之间使用逗号进行分隔。若输出项是表达式时,pitift()按从右到左的顺序计算出其值后输出。
若要在printf()函数中输出字符“%”,则应在格式控制字符串中使用连续两个“%”
scanf()函数
scanf()函数是系统提供的用于由标准输入设备(键盘)输入数据的库函数,使用该函数时,由键盘输入数据的值
般调用格式为:
scanf(“格式控制字符串”,输入项表列)
格式控制字符串用双引号括起来,表示输入的格式
输入项表列指出各变量的地价(变量名前加&).
格式控制字符串中包含两种信息,格式控制说明和普通字符
格式控制说明:按指定的格式输入数据,其格式为以%开头的格式控制字符,不同规型的数据采用不同的格式控制字符
普通字符:在输入数据时,需要原样输入的字符
注意
scanf()函数的输入参数必须和格式控制字符串中的格式控制说明相对应,并且它们的类型、个数和位置都要――对应。若程序中有多个scanf函数时,程序会等待用户输入并依次赋给相应变量
使用scanf()函数进行数据输入时需注意:
格式字符与输入项的类型、个数要一一对应;输入项必须是地址,不能是变量名
格式字符可以指定输入数据所占的列数,系统会截取相应列数的数据
在输入数据时遇到以下情况则认为数据输入结束:空格、Tab键、回车键、非法输入指定宽度,用户也可以自己指定其他字符作为输入间隔
整形数据的输入与输出
实型数据的输入和输出
说明
在格式字符串的“%”和格式字符之间也可以有一些修饰符
在输出实型数据时,还可以指定输出的精度,即在格式字符串的“%”和格式字符之间加入“m,n”,其中m指明输出的总位数,n指明小数点后面的位数,诺实际输出位数大于n,则超出的部分四舍五入;诺实际输出位数小于n则不足部分补0
使用scanf()函数输入实型数据时不能指明精度即使用“%f。nf”的格式是错误的
字符型数据的输入与输出
字符型数据的输入与输出可以调用函数getchar()、scanf()和putchar()、print发().其中putchar()和getcha人()只能用与单个字符的输入输出,scanf()和printf()可以用于多个字符的输入输出
使用scnf()函数和printf()函数对字符型数据进行输入输出
使用 使用scanf()函数和printf()函数进行字符型数据的输入输出时,其相应的格式控制字符为“c”
使用genchar()函数和putchar()函数对字符型数据进行输入和输出
getcher()函数
设ch是字符型变量,函数getcher()的一般调用格式为:
ch=getchar();
运行时从键盘输入缓冲区中读取一个字符,并赋值给ch。由于函数gatchar()只能读入一个字符,若需输入多个字符,就需要多次调用函数,一般采用循环调用的方式
putchar()函数
函数putchar()的一般调用格式为:
putchar(输出参数);
输出一个字符,输出参数是字符型变量或字符型常量。
数学库函数
C语言处理系统提供了许多事先编好的库函数,供用户在编程序时使用,这些事先编好的函数称为库函数
常用的数学库函数有
指数函数exp(x):计算e的x次方
绝对值函数fabs(x):计算x的绝对值
以e为底的对数函数log(x):计算㏑x
幂函数pow(x,y):计算x的y次方
平方根函数sqrt(x):计算根号x
用户程序在调用数学库函数时,一定要在程序开头使用#include<math.h>
分支机构程序设计
关系运算符,逻辑运算符,条件运算符
关系运算符与关系表达式
关系运算符
关系运算符用于判断两个操作数的大小关系。在C语言中有6个关系运算符
注意
关系运算符都是双目运算符,其结合方向是左结合
关系运算符的优先级低于算术运算符,但是高于赋值运算符
关系运算符中,>,<,>=,<=的优先级相同==,!=的优先级相同,前者的优先级高于后者即“>=”的优先级高于“”。
关系表达式
用关系运算符加两个表达是连接起来的式子称为关系表达式
一般形式为
表达式1关系运算符 表达式2
功能
比较两个表达式的大小,返回一个逻辑值
注意
注意区分运算符“=”和“”。“=”是赋值运算符,“==”是关系运算符
对实数进行相等判断可能得不到正确的结果
关系表达式中可以出现赋值运算符,因为关系运算符的优先级高于赋值运算符,赋值y运算符左边不是变量,会出现编译错误。
关系表达式主要用于分支结构中的条件判断。关系表达式的结果是一个逻辑值“真”或“假”,由于C语言中没有逻辑类型的数据,因此用“1”表示“真”,“0”表示“假”
逻辑运算符和逻辑表达式
逻辑运算符
关系表达式只能描述单一的条件。
注意:与运算符&&和或运算符||都是双目运算符,非运算符!为单目运算
逻辑表达式
用逻辑运算符将两个表达连接起来的式子称为逻辑表达式
一般形式为
表达式1 逻辑运算符 表达式2
逻辑运算符 表达式 1
逻辑表达式的结果也是一个逻辑值“真”或“假”即为“1”获取“0”
说明
参与逻辑运算的数据可以是1和0,也可以是非零值和零,还可以是任何类型的数据,但最都是以非0和0来判断他们是“真”或“假”
在逻辑表达式中也可以使用赋值运算符,因为逻辑运算符的优先级高于赋值运算符,赋值算符左边不是变量,会出现编译错误
C语言规定,只对决定整个表达式值所需的最少数目的子表达式进行运算。即在由若干个子表达式组成的逻辑表达式中,从主向右计算,当计算出一个子表达式的值就确定了整个逻辑表达式的值时,此后就不再计算右边剩下的子表达式的值,这种情况称为“短路”
对于逻辑与(&&)运算,若“&&”左边的表达式的值为假,则可以得出整个表达式的值为假,那么“&&”右边的表达式将不再进行计算;只有当“&&”左边的表达式值为真时才计算右边表达式的值。
对于逻辑或(||)运算,若“||”左边的表达式的值为真,则可以得出整个表达式的值为真,那么“||”右边的表达式将不再进行计算;只有当“||”左边的表达式为假时才计算右边表达式值
————————————————
版权声明:本文为CSDN博主「徐淋丰的博客」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_61912983/article/details/121454012
条件运算符合条件表达式
条件运算符
条件运算符由“?”和“:”两个符号组成,用于条件求值,它是一个三目运算符,需要三个操作数。条件运算符的优先级低于逻辑运算符高于赋值运算符,它是右结合的
条件表达式
由条件运算符将3个表达式连接起来的式子称为条件表达式
一般形式为;
表达式1?表达式2:表达式3
执行顺序
先计算表达式1的值,若值为非0,表示条件为真,则将表达式2的值作为整个条件表达式的值,否则,将表达式3的值作为整个条件表达式的值
说明
件表达式中表达式1的类型可以与表达式2和表达式3不同,表达式2和表达式3的类型也可以不同,此时系统会自动进行转化,结果为表达式2和表达式3中级别类型较高的,并将其作为条件表达式的类型
条件表达式中表达式2和表达式3不仅可以是数值表达式,还可以是赋值表达式或函数表达式,条件运算符的优先级高于赋值运算符
条件表达式允许嵌套
使用if——else实现分支机构
if- else
双分支if语句
一般表达式如下:
if(表达式)
语句1;
else
语句2;
语义是首先求解表达式,如果表达式的值为“真”,则执行语句2;若表达式的值为“假”,则执行语句2,无论执行完语句1还是语句2,都会结束整个if语句的执行
双分支if语句可以用条件表达式替换。当if语句中只给同一个变量赋值时,可以使用条件表达式代替if语句
.单分支if语句
一般形式如下:
if(表达式)
语句
双分支if- else语句中,若缺省了“语句2时”,则构成了单分支语句,执行流程图。其语义是首先计算表达式,如果表达式的值为“真”,则执行语句;否则不执行语句,直接执行if语句的下一语句。
例4.9
注意
无论在双分支还是单分支if语句的格式中,“表达式”都是用来描述判断的条件,语法上可以是任意类型的表达式。表达式的结果如果为“0”,表示“假”;结果为“非0”,则表示“真”
无论在双分支还是单分支if语句的格式中,被执行的语句均为单个语句。如果想要执行一组语句时,则必须将这一组语句用{}括起来起来形成复合语句,但在“}”之后不能再加括号。注意,复合语句中的语句执行时会全部被执行
语句的嵌套
一个if语句中又包含一个或多个if语句的现象称为if语句的嵌套
if语句的基本形式:
if(表达式)
语句1;
else
语句2
其中“语句1”或“语句2”都可以嵌套另一个if语句,在缺省else部分的if语句中的“语句”,也可以嵌套另一个if语句。因此,具体嵌套形式可以有很多种
在C语言中规定其对应原则是:else总是与它前面最近的一个未匹配的if相匹配
多分支if语句
多分支if语句是最常用的实现多路分支的
一般形式如下:
if(表达式1)
语句1;
if(表达式2)
语句2;
if(表达式n-1)
语句n-1;
else
语句n;
首先求解表达式1,如果表达式的值为“真”,则执行语句1,并结束整个if语句的执行;否则,求解表达式2,…,若表达式1至表达式n-1的值都为“假”时,执行语句n
使用switch语句实现分支机构
一般形式如下:
switch(表达式)
{
case常量表达式1:语句1;break;
case常量表达式2:语句2;break;
…
case常量表达式n:语句n;break;
default:语句n+1;break;
}
switch语句执行结果其执行过程为:首先计算switch后面括号内的表达式,然后将表达式的值从上到下按顺序与各个case后面的常量表达式的值进行比较,若与某个常量表达式的值相等,则执行该常量表达式后面的语句,然后执行break语句,跳出switch语句,switch语句执行结束;如果表达式的值与任何一个常量表达式的值都不相等,则执行default后的语句,结束语句switch的执行
说明
switch后的表达式可以是任意表达式,其值只能为整形、字符型、枚举型之一
每个case后面的常量表达式的值互不相同,否则就会出现互相矛盾的现象
各个case和default的出现次序不影响执行结果
可以让多个case共用一组执行语句
switch语句允许嵌套使用
循环结构程序设计
使用for语句实现循环结构
for语句是C语言提供的功能强大、使用广泛的一种循环结构,不仅可以解决循环次数未知的循环问题,特别适合解决循环次数已知的循环问题
for语句的基本语法
for语句的一般形式为:
for(表达式1;表达式2;表达式3)
循环体语句
for语句的执行过程
首先计算表达式1
判断表达式2,若其值为真(非0),则执行循环体语句,然后执行第3步;若值为假(0),结束循环,转到第5步执行
计算表达式3
返回第2步继续执行
循环结束,继续执行for语句的下一条语句。大部分情况下,循环体语句为一复合循语句。
注意,表达式1只在进行循环之前计算一次。表达式2、循环体语句和表达3将重复执行
根据for语句格式的特点,其实际应用可以有多种形式
可以应用于计数型的循环
格式如下:
for(循环变量赋初值;循环条件;循环变量增量)
循环体语
说明
循环变量赋值是一个赋值语句,用于给循环变量赋初值;循环条件是一个条件表达式,决定何时终止循环(即确定循环的终值);循环变量增量决定循环变量在完成一次循环后如何变化。三部分之间以“;”隔开
for语句的一般形式中省略表达式1
格式如下:
for(;表达式2;表达式3)
循环体语句;
说明
省略表达式1时,可以将循环变量赋初值放在for之前。
注意
此事不能省略第一个“;”
for语句的一般形式中省略表达式2
格式如下:
for(表达式1;;表达式3)
循环体语句;
说明
循环表达式2时,表示不对循环进行控制,这时如果没有其他处理的话,会形成死循环。应避免这样使用for结构
for语句的一般形式中省略表达式3
格式如下:
for(表达式1;表达式2;)
循环体语句;
说明
省略表达式3时,可以在循环体语句中加入修改循环变量的语句
for语句的一般形式中表达式1和表达式3也可以是逗号表达式
for语句的一般形式中表达式2的值只要非0,就执行循环体
for语句的一般形式中循环体句可以省略
for循环使用示例
使用while语句实现循环结构
while语句是三种循环结构之一,while后括号中的表达式称为循环条件,循环开始时,一定要保证循环条件为真。需要重复执行的语句精神了循环体
使用while语句完成不定次数的循环。如果满足循环条件,则反复执行循环体语句,当循环条件不满足时退出循环
while语句的基本语法
while语句在使用时,总是先要判断一个条件,所以可以用while语句实现“当型”循环
一般形式如下:
while(表达式)
循环体;
while(表达式)
循环体;
计算表达式的值,若表达式的值为“真”,则执行第2步;若表达式的值为“假”,则转到第4部
执行循环体语句
返回第1步
结束循环,执行while语句的下一条语句
注意:while语句的特点是先判断循环条件,后执行循环体
使用do---while语句实现循环结构
do-while语句也用于完成不定次数的循环控制。do-while语句不同的是,do-while语句首先执行一次循环体,然后判断循环条件,如果满足,则反复执行循环体语句;否则结束循环
do-while语句的基本语法
do-while语句在使用时,首先执行循环体语句,然后再判断条件。所以说可以用do-while语句实现“直到型”循环
一般形式如下:
do
循环体
while(表达式);
do
循环体
while(表达式);
执行循环体语句
计算表达式的值,若表达式的值为“真”(非0),返回第1步;若表达式的值为“假”(0),则执行第3步
结束循环,执行do-while语句的下一一条语句
注意,do-while语句的特点是先执行循环体,后判断循环条件。因此,do-while循环至少要执行一次循环体
在使用都do-while语句使用注意以下几点
在do之后不能有语句结束符“;”因为该语句还没有结束
在while(表达式)之后必须有语句结束符“;”表示do-while语句到此结束
在循环体中必须有改变循环条件的语句,否则会出现死循环
改变循环结构的跳转语句
break语句
break语句在循环语句和switch语句中
break语句的一般形式如下:
break;
当break语句用于循环语句时,可使程序终止循环而转去执行循环语句的后继语句。通常break语句总是与if语句一起配合使用,即满足条件时便跳出循环
goto语句
goto语句的一般形式如下:
goto语句标号
说明:语句标号是一个有效的标识符,使用时在语句编号的后面跟一个“:”出现在函数中的某语句的前面。程序执行到goto语句时,会控制跳转到该语句标号处,达到控制循环的目的
注意,语句标号必须与goto语句处于同一函数中。通常goto语句与if语句连用实现循环控制。大型循环中由于goto语句可能存在的不合理的使用,会使循环结构变坏,所以程序设计中,不建议使用goto语句
循环嵌套
当一个循环的循环体内有包含了另一个完整的循环结构时,称为循环的嵌套或者是二重循环。根据问题的需要可以构成三重及以上的循环嵌套结构,但一般情况下最多使用到三重循环
使用for语句、while语句及do-while语句相互嵌套,构成的嵌套结构有以下几种
for语句中嵌套for语句
for语句中嵌套while语句
while语句中嵌套while语句
do-while语句嵌套for语句
do-while语句中嵌套do-while语句
while语句中嵌套do-while语句
使用循环嵌套时,注意以下几点
外循环执行一次,内循环要执行一轮。即外循环执行一次,内循环一直要执行的条件不满足是为一轮;再执行外循环一次,内循环又一直执行到条件不满足时为第二轮;如此重复执行,直到外循环条件不满足时,整个循环嵌套结束
循环嵌套格式中的内外循环体不允许出现交叉,即外循环要完全包含内循环
循环嵌套时,内循环体中使用break语句和continue语句时,只影响包含它们的内循环,与外循环无关
典型算法
举例递推法
递推法的解题思路是:
后项可由前项推出(称为正推),或前项可由后项推出(称为倒退)。找出前后项的关系以后,需要应用循环结构实现算法,其中确定前后相的关系是关键。
迭代法
牛顿迭代法又称为牛顿切线法
穷举法
0 条评论
下一页