版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、41 运算符与表达式运算符与表达式运算符是指用来表示在数据上执行某些运算符是指用来表示在数据上执行某些特定操作的符号。参与运算的数据称为特定操作的符号。参与运算的数据称为操作数。可以分别称为单目、双目和操作数。可以分别称为单目、双目和三目运算符。三目运算符。表达式是指用运算符和圆括号把常量、表达式是指用运算符和圆括号把常量、变量和函数等运算成分衔接起来的有意变量和函数等运算成分衔接起来的有意义的式子。单个常量、变量和函数也可义的式子。单个常量、变量和函数也可以看成是一个表达式。以看成是一个表达式。例如: 98.56 , (98.56) , x , 876-78 ,3*(2.5+5) 都是表达式
2、,l 根本运算符是指完成算术运算、关系运算、逻辑运算、位运根本运算符是指完成算术运算、关系运算、逻辑运算、位运算的运算符。算的运算符。4.1.1 算术运算算术运算 5.3%2错错l C+中有如下单目运算符: + - (正负号)l C+中有如下双目运算符: + - * / %l 5 / 2 5.0 / 2 8 5 ?l 运算符%的操作数只能是整型或字符型。当赋值运算符的两边出现一样的变量时,C+还提供了一个简约的表达方式:x =。其中的x可为 +、-、*、/、等。假定e1和e2是表达式,那么 e1 = (e1) x (e2)就等价于 e1 x = e2例如,表达式 a = a + 9 可以用+
3、=写成如下方式: a + = 9 留意围绕 e2 的括号。例如,表达式 y - = x + 1 实践上是 y = y - ( x + 1 ) + + 和和 - - 运算符运算符增增1运算符和减运算符和减1运算符分别对其操作数进展加运算符分别对其操作数进展加1和减和减1操作,它们既可以用在变量前,作为前缀运操作,它们既可以用在变量前,作为前缀运算符,例如算符,例如 int m , n ; + m ; - n ; 又可用在变量后,作为后缀运算符。例如又可用在变量后,作为后缀运算符。例如: m + ; n - ; 在两种情形下,在两种情形下,m的值都将加的值都将加1而而n的值都将减的值都将减1。前缀
4、增减前缀增减1运算符在运用变量的值之前就使运算符在运用变量的值之前就使变量值加变量值加1或减或减1,后缀增减后缀增减1运算符在运用变量的值之后才使运算符在运用变量的值之后才使变量值加变量值加1或减或减1。例如,假设例如,假设n的值为的值为5,那么,那么 x = n + ;先将先将n的值的值5赋给赋给x,即,即x的值为的值为5,再将,再将 n的值加的值加1,那么那么n为为6。而。而 x = + n ;先将先将n的值加的值加1得到得到6,再将,再将n的值赋给的值赋给x,那么,那么x和和n的值都为的值都为6。postincrement & preincrement4.1.2 关系运算关系运算
5、C+的关系运算符都是二元的,有的关系运算符都是二元的,有、=、= 4的值为的值为1,而表达式,而表达式 67 != 67的值为的值为0。例4.1 关于关系运算的一个例子。 # include void main( ) double x = 45.3 , y ; cout y ; cout ( x y ) 10 ) & ( x 20 )例如,当例如,当 x = 14 时,上述表达式为时,上述表达式为1; 当当 x = 8 时,时,上述表达式为上述表达式为0。| 运算符左右两边的表达式只需有一个为真非运算符左右两边的表达式只需有一个为真非0,整个表达式的值就为,整个表达式的值就为1。只需当
6、其左右两边的。只需当其左右两边的表达式都为表达式都为0时,整个表达式的值才为时,整个表达式的值才为0。例如:例如: ( x 20 )当当x=36时,此表达式的值为时,此表达式的值为1; x=8时,此表达式的时,此表达式的值也为值也为1; x = 16 时,此表达式的值为时,此表达式的值为0。! 运算符用在表达式的前面,表示取表达式的非。假设表达式值为0,取非以后为1; 假设表达式值为非0,取非以后为0。例如: !(32)的值为0,由于(32)的值为1。C+在计算逻辑表达式的值时,假设从左到右计算到某处就曾经可以确在计算逻辑表达式的值时,假设从左到右计算到某处就曾经可以确定表达式的值,那么不再继
7、续后面部分的求值。定表达式的值,那么不再继续后面部分的求值。例如,形如例如,形如 e1 & e2的表达式,在已求得表达式的表达式,在已求得表达式e1的值为的值为0的情况下,曾经可以确定整个逻的情况下,曾经可以确定整个逻辑表达式的值为辑表达式的值为0,C+就不再对就不再对e2求值。求值。同样,形如同样,形如 e1 | e2的表达式,假设曾经求得的表达式,假设曾经求得e1的值为的值为1,那么整个表达式的值一定为,那么整个表达式的值一定为1,C+就不再对就不再对e2求值。求值。4.1.4 条件运算符条件运算符条件运算符条件运算符?:是是C+中独一的一个三元运算符。中独一的一个三元运算符。条件
8、运算符的表达式具有如下方式条件运算符的表达式具有如下方式: e1 ? e2 : e3 其中其中e1、e2、e3皆为表达式。皆为表达式。条件运算执行的操作是:先计算表达式条件运算执行的操作是:先计算表达式e1的值,的值,假设为非假设为非0,那么计算表达式,那么计算表达式 e2 的值并把它作为整的值并把它作为整个表达式的值个表达式的值; 而假设而假设e1的值为的值为0,那么计算表达式,那么计算表达式e3的值,并用它作为整个表达式的值。的值,并用它作为整个表达式的值。例如,表达式例如,表达式 ( x y ) ? 10 : 20 假设假设x的值大于的值大于y的值,那么表达式的值为的值,那么表达式的值为
9、10,否,否那么表达式的值为那么表达式的值为20。又如,在语句又如,在语句 max = ( a b ) ? a : b ; 中,中,max将赋值为将赋值为a、b中较大的数。中较大的数。4.1.5 运算符的优先级和结合性运算符的优先级和结合性当一个表达式中有多个运算符时,运算符的优先当一个表达式中有多个运算符时,运算符的优先级和结合性就决议了表达式中各运算的先后顺序。级和结合性就决议了表达式中各运算的先后顺序。优先级一样时,由结合性决议运算次序。优先级一样时,由结合性决议运算次序。运算符的结合性分为左结合从左到右计算和运算符的结合性分为左结合从左到右计算和右结合从右到左计算。右结合从右到左计算。
10、例如,运算符例如,运算符+和和-优先级一样、为左结合,因此优先级一样、为左结合,因此表达式表达式 45+89-23按从左到右的顺序计算,先做加法再做减法。按从左到右的顺序计算,先做加法再做减法。而赋值运算符而赋值运算符=是右结合的,因此表达式是右结合的,因此表达式 x = y = 78的运算次序为:先将的运算次序为:先将78赋给赋给y,再将,再将y赋给赋给x。 表4.1 C+常用运算符的优先级和结合性优先级优先级运运 算算 符符结合性结合性1( ) - . 类成员访问类成员访问 数组下标数组下标 : : 作用域访问作用域访问 左左2*(取内容取内容) &(取地址取地址) ! + - +
11、 (一元一元) - (一元一元) sizeof右右3*(乘乘) / %左左4+ -左左5左左6 =左左7= !=左左8& 左左9| 左左10? : 条件运算条件运算右右11= += -= *= /= %= = &= |= = 右右12, 左左C+各运算符的优先级总的来说有如下规律各运算符的优先级总的来说有如下规律按优先级从高到低:按优先级从高到低:一元一元二元二元(除了赋值除了赋值)三元三元赋值赋值逗号逗号; 二元运算符又有如下规律:二元运算符又有如下规律:算术算术关系关系逻辑逻辑; 逻辑运算符有如下规律:逻辑运算符有如下规律:! & |。请分析以下表达式的求值次序。假
12、定有 int x = 5 , y = 4 , z = 6 ; char a = s , b = t ; int w = 2 ; 表达式 表达式的值 z / y z / 4.0 z / y % z / x a b | y z a != b & z 6 a = b & ! ( y z ) a = b & ! y z x + 1 +z x + 1 z+ -x -y | x + y z & z % 3 = 0 ( x+ , x += y , x + y )11.501001 1011442 根本程序控制构造根本程序控制构造按照构造化程序设计的思想,程序由三种按照构造化程
13、序设计的思想,程序由三种单入口、单出口的根本构造组成:顺序构造、单入口、单出口的根本构造组成:顺序构造、选择构造、循环构造。选择构造、循环构造。C+的控制流就是这的控制流就是这三种根本构造组成的。三种根本构造组成的。4.2.1 顺序构造顺序构造 顺序构造的程顺序构造的程序是指程序中的一切序是指程序中的一切语句都是按书写顺序语句都是按书写顺序逐一执行的,只需顺逐一执行的,只需顺序构造的程序功能有序构造的程序功能有限。限。例例4.2 计算球的体积计算球的体积 。知球的体积公式为:。知球的体积公式为: 4R3V= 3# include void main( ) float radius , bulk
14、 ; cout radius ; / 输入半径输入半径 bulk = 4*3.1416* radius* radius* radius/3 ; cout bulk = bulk endl ; / 输出体输出体积积 4.2.2 选择构造选择构造选择构造也称为分支构造,用于处置在程序中出现了选择构造也称为分支构造,用于处置在程序中出现了两条或更多执行途径可供选择的情况。选择构造可以用两条或更多执行途径可供选择的情况。选择构造可以用选择语句来实现。选择语句包括选择语句来实现。选择语句包括 if 语句和语句和 switch 语句。语句。1If 语句语句if语句有两种格式。语句有两种格式。格式一:格式一
15、:if (条件表达式条件表达式) 语句语句功能:对条件表达功能:对条件表达式求值,假设值为真式求值,假设值为真非非0那么执行它那么执行它后面的语句后面的语句; 否那么否那么什么也不做。什么也不做。假设需求执行的语假设需求执行的语句用单条语句写不下句用单条语句写不下,就应该用复合语句,就应该用复合语句。例例4.3 将两个数排序输出将两个数排序输出 。# include void main( ) float a , b , ls ; cout a b ; if ( a b ) ls = a ; / 以下三句的功能为交换以下三句的功能为交换a、b的的值值 a = b ; b = ls ; cout
16、a b endl ; 格式二格式二 if (条件表达式条件表达式) 语句语句1 else 语句语句2格式二的格式二的if语句完成的功能:对条件表达式求值,假设语句完成的功能:对条件表达式求值,假设值为真非值为真非0执行其后的语句执行其后的语句1; 否那么执行否那么执行else后面的语后面的语句句2。即根据条件表达式能否为真分别作不同的处置。即根据条件表达式能否为真分别作不同的处置。下面用格式二的下面用格式二的if语句改写例语句改写例4.3。例例4.4 对例对例4.3的改写的改写 。 # include void main( ) float a , b , ls ; cout a b ; if
17、( a b ) cout a b endl ; /先打印先打印a再打再打印印b else cout b a endl ; /先打印先打印b再打再打印印a 上一节引见的条件运算符也可以用上一节引见的条件运算符也可以用if语句语句来改写。例如:来改写。例如: y = ( a b ) ? a : b ; 可以用下面这个可以用下面这个if语句来替代:语句来替代: if ( a b ) y = a ; else y = b ; 条件表达式取值条件表达式取值false: 0true: 一切非一切非0值值例4.5 某单位向职工按月发放医疗补贴的详细方案如下:职工工龄在10年以下的,医疗补贴为其根本工资的10
18、% ; 工龄在10年以上20年以下的,医疗补贴为其根本工资的15% ; 工龄在20年以上30年以下的,医疗补贴为其根本工资的20% ; 工龄在30年以上的,医疗补贴为其根本工资的30%。输入某职工的工龄及根本工资,计算他每月应得的医疗补贴。# include void main( ) int seniority ; double wages , allowance ; cout seniority ; /输入工龄输入工龄 cout wages ; /输入根本工资输入根本工资 if ( seniority 10 ) / 工龄在工龄在10年以下年以下 allowance = wages * 0.1
19、 ; else if ( seniority 20 ) / 工龄在工龄在10年年19年年 allowance = wages * 0.15 ; else if ( seniority 30 ) / 工龄在工龄在20年年29年年 allowance = wages * 0.2 ; else allowance = wages * 0.3 ; / 工龄在工龄在30年以上年以上 cout The allowance is : allowance endl ; i f 语 句 中语 句 中也可以包含也可以包含if 语句,这语句,这就构成了就构成了if语句的嵌套。语句的嵌套。例例4.5也可以不运用嵌套的
20、也可以不运用嵌套的if语句。借助逻辑运算符,用几个并语句。借助逻辑运算符,用几个并列的列的if语句来完成例语句来完成例4.5的功能:的功能:例4.6 对例4.5的改写。 # include void main( ) int seniority ; double wages , allowance ; cout seniority ; cout wages ; if ( seniority = 10 & seniority = 20 & seniority = 30 ) allowance = wages * 0.3 ; cout The allowance is : allow
21、ance 2 ) if ( x 4 ) x = 35 ; else x = 78 ; cout x 2 ) if ( x 2 ) if ( x 4 ) x = 35 ; else x = 78 ; 当当x2或者或者x4时,这两种了解会导致两个不同的时,这两种了解会导致两个不同的答案。这就叫产生了二义性。答案。这就叫产生了二义性。在绝大多数的言语中,包括在绝大多数的言语中,包括C+,都采用最近匹配,都采用最近匹配原那么来处理这个问题。所谓最近匹配原那么就是原那么来处理这个问题。所谓最近匹配原那么就是每个每个else必需与离它最近的那个没有匹配的必需与离它最近的那个没有匹配的if相匹配。相匹配。按
22、照这个原那么,上面的第二种了解是正确的。按照这个原那么,上面的第二种了解是正确的。2switch语句语句switch语句又称为开关语句,其格式如下:语句又称为开关语句,其格式如下: switch (表达式表达式) case 常量表达式常量表达式1 : 语句序列语句序列1 break ; case 常量表达式常量表达式2 : 语句序列语句序列2 break ; case 常量表达式常量表达式n : 语句序列语句序列n break ; default : 语句序列语句序列n+1 break ; 其中,其中,switch后面的表后面的表达式的类型必需与达式的类型必需与case后面的常量表达式的后面的
23、常量表达式的类型一致,而且只能类型一致,而且只能是字符型、整型或枚是字符型、整型或枚举型留意不能是浮举型留意不能是浮点型点型; case后面的表后面的表达式必需是常量表达达式必需是常量表达式,不能含有变量式,不能含有变量 ; 同同一个一个switch中不能有反中不能有反复的常量表达式。复的常量表达式。# include void main( ) int w ; /代表星期的整数代表星期的整数 cout w ; switch ( w ) case 0 : cout Its Sunday . endl ; break ; case 1 : cout Its Monday . endl ; brea
24、k ; case 2 : cout Its Tuesday . endl ; break ; 例例4.7 根据一个代表星期的根据一个代表星期的0到到6之间的整数,在屏幕上打印出它之间的整数,在屏幕上打印出它代表的是星期几。代表的是星期几。case 3 : cout Its Wednesday . endl ; break ; case 4 : cout Its Thursday . endl ; break ; case 5 : cout Its Friday . endl ; break ; case 6 : cout Its Saturday . endl ; break ; defaul
25、t : cout Invalid data ! endl ; default语句是可以缺省的。假设没有语句是可以缺省的。假设没有default,那么当一,那么当一切匹配都失败时,将不执行任何操作。建议运用切匹配都失败时,将不执行任何操作。建议运用default语语句,除非句,除非case语句已覆盖了一切的能够,以防止由于没有语句已覆盖了一切的能够,以防止由于没有思索到某种情况而给程序带来的不利影响。思索到某种情况而给程序带来的不利影响。break语句在语句在switch中的作用是跳出整个中的作用是跳出整个switch语句。在例语句。在例4.7中,每中,每个个case的语句序列后都有一个的语句序
26、列后都有一个break语句最后一个语句最后一个case或或default语句语句的的break可以省略。在这种情况下,各个可以省略。在这种情况下,各个case的陈列次序可以是恣意的陈列次序可以是恣意,不会影响程序的结果。假设没有,不会影响程序的结果。假设没有break,那么执行完该,那么执行完该case语句的语语句的语句序列后,还将接下去执行后面的句序列后,还将接下去执行后面的case的语句序列。在这种情况下,的语句序列。在这种情况下,各个各个case陈列的次序不同,就能够产生不同的结果。陈列的次序不同,就能够产生不同的结果。例如,把例例如,把例4.7中的中的break都删去假定输入的都删去假
27、定输入的w的值为的值为4,会出现,会出现什么情况呢?。什么情况呢?。假设是在有假设是在有break的情况下,的情况下,w应与第五个应与第五个case中的常量中的常量4匹配,从而匹配,从而在屏幕上打印出:在屏幕上打印出: Its Thursday .之后就该跳出之后就该跳出switch,到达程序末尾并终了。然而,没有了,到达程序末尾并终了。然而,没有了break的的switch语句得到的结果与原来大不一样。在打印了上面的字符串后,语句得到的结果与原来大不一样。在打印了上面的字符串后,并不会跳出并不会跳出switch,而是依次进入后面的,而是依次进入后面的case及及default语句去执行打印语
28、句去执行打印语句,于是得到的输出为:语句,于是得到的输出为: Its Thursday . Its Friday . Its Saturday . Invalid data ! 假设多个case后的语句序列是一样的,即要做的操作是一样的,可采用下面的格式以防止反复书写: switch (表达式) case 常量表达式1 : case 常量表达式2 : case 常量表达式i : 语句序列 break ; case 常量表达式n : 语句序列n break ; default : 语句序列n+1 # include void main( ) int seniority , s ; double
29、wages , allowance ; cout seniority ; cout wages ; s = seniority / 10 ; /得到工龄的十位数字 switch ( s ) case 0 : /工龄在10年以下 allowance = wages * 0.1 ; break ; case 1 : / 工龄在10年19年 allowance = wages * 0.15 ; break ; case 2 : / 工龄在20年29年 allowance = wages * 0.2 ; break ; 例4.8 用switch语句来实现例4.5。这个程序是按工龄不会超越49年来设计的
30、。由于switch 不能象if语句那样可以进展大于、小于等判别,而只能判别能否相等,因此程序中取工龄的十位数字作为switch表达式。case 3 : / 工龄在30年49年case 4 : allowance = wages * 0.3 ; break ; default : allowance = 0 ; cout The allowance is : allowance endl ; 4.2.3 循环构造循环构造C+中有三种循环语句可用来实现循环构造:中有三种循环语句可用来实现循环构造:while语句、语句、do_while语句和语句和for语句。这些语句语句。这些语句各有各的特点,而且
31、经常可以相互替代。在编程各有各的特点,而且经常可以相互替代。在编程时应根据题意选择最适宜的循环语句。时应根据题意选择最适宜的循环语句。1while语句语句while语句的格式语句的格式为:为: 例4.9 计算100之内的奇数之和。 # include void main( ) int n = 1 ; / 奇数 int sum = 0 ; / 奇数的累加和 while ( n 100 ) / n不能超越100 sum += n ; / 累加 n += 2 ; / 修正为下一个奇数 cout The sum is : sum endl ; while语句的执行过程:语句的执行过程: 对条件表达式求
32、值,假设值为真非对条件表达式求值,假设值为真非0那么执行步骤那么执行步骤,否那么转步骤,否那么转步骤; 执行循环体中的语句执行循环体中的语句; 前往前往 ; 终止循环,去执行终止循环,去执行while语句的下一语句。语句的下一语句。while 条件表达式条件表达式 语句语句 /循环体循环体例例4.10 将例将例4.6改良为可以反复计算不同的人的医疗补贴。改良为可以反复计算不同的人的医疗补贴。以输入的工龄为以输入的工龄为0作为终了条件。作为终了条件。 # include void main( ) int seniority ; double wages , allowance ; cout se
33、niority ; /输入第一个人输入第一个人的工龄的工龄 while ( seniority != 0 ) /假设工龄不假设工龄不为为0那么进入循环那么进入循环 cout wages ; if ( seniority = 10 & seniority = 20 & seniority = 30 ) allowance = wages * 0.3 ; cout The allowance is : allowance endl ; cout seniority ; /输入下一人输入下一人的工龄的工龄 break语句不仅可用于跳出语句不仅可用于跳出switch语句,还可用于跳出循
34、环包括三语句,还可用于跳出循环包括三种循环语句。但它只能跳出它所在的循环语句或种循环语句。但它只能跳出它所在的循环语句或switch语句,不能语句,不能跳出外层的循环语句或跳出外层的循环语句或switch语句假设有的话。假想象跳出外层语句假设有的话。假想象跳出外层语句,还要在外层中运用语句,还要在外层中运用break。例4.11 从键盘接纳10个整数,求它们的平方根。假设遇到负数就终止程序。# include # include void main( ) int i = 1 , num ; double root ; while ( i = 10 ) cout num ; if ( num 0
35、 ) /假设num是负数那么退出循环 break ; root = sqrt(num) ; cout root endl ; i+ ; 这个程序有两个出口。这个程序有两个出口。每个输入的数在计算其平每个输入的数在计算其平方根之前都要判别它的正方根之前都要判别它的正负,假设为负数就退出循负,假设为负数就退出循环,这是一个出口。另外环,这是一个出口。另外,整型变量被用来实现记,整型变量被用来实现记数。数。i的初值为的初值为1,每执行一,每执行一次循环体就将它的值加次循环体就将它的值加1,当它的值为当它的值为11时,表示循时,表示循环体曾经执行了环体曾经执行了10次,于次,于是循环终止。这是第二个是
36、循环终止。这是第二个出口。这样的程序可读性出口。这样的程序可读性较差。较差。例例4.12 对例对例4.11的改良:遇到负数那么忽略并重新输入下一个数据。的改良:遇到负数那么忽略并重新输入下一个数据。 # include # include void main( ) int i = 1 , num ; double root ; while ( i = 10 ) cout num ; if ( num 0 ) /假设假设num是负数那么回到循环开场是负数那么回到循环开场处处 cout valid number! ; continue ; root = sqrt(num) ; cout root
37、endl ; i+ ; continue语句用在循环体中,它的作用是忽略循环体中位于它之后的语句,重新回到条件表达式的判别。2do_while循环语句循环语句while语句的特点是先判别条件,再确定能否执语句的特点是先判别条件,再确定能否执行循环体,也即行循环体,也即“先判别,后执行先判别,后执行;假设第一次对假设第一次对条件表达式求值时它就为假,那么循环体就一次也条件表达式求值时它就为假,那么循环体就一次也不被执行。不被执行。do_while语句是先执行一次循环体之语句是先执行一次循环体之后,再根据条件表达式的值确定能否还要继续执行后,再根据条件表达式的值确定能否还要继续执行循环体,也即循环
38、体,也即“先执行,后判别,循环体至少会先执行,后判别,循环体至少会被执行一次。被执行一次。do_while语句的格式为:语句的格式为: do 语句语句 /循环体循环体 while (条件表达式条件表达式) ; 其中的条件表达式及语句的规定同其中的条件表达式及语句的规定同while 语句一语句一样。留意条件表达式后面的分号不能少,由于整个样。留意条件表达式后面的分号不能少,由于整个do_while语句实践上相当于一条语句。语句实践上相当于一条语句。do_while语句的执行过程如下:语句的执行过程如下: 执行一遍循环体执行一遍循环体; 对条件表达式求值,假设为真非对条件表达式求值,假设为真非0那
39、么转那么转步骤步骤,否那么转步骤,否那么转步骤; 终止循环,去执行终止循环,去执行do_while语句的下一语句。语句的下一语句。 do_while和和while语句在大多数情况下都可以相互替代语句在大多数情况下都可以相互替代除非是有能够循环体一次也不被执行的情况。例如,例除非是有能够循环体一次也不被执行的情况。例如,例4.9中是利用中是利用while语句来计算语句来计算100之内的奇数之和的,可以将之内的奇数之和的,可以将它改写为用它改写为用do_while语句来求和。语句来求和。例4.13 用do_while语句来改写例4.9 。 # include void main( ) int n
40、= 1 ; / 奇数 int sum = 0 ; / 奇数的累加和 do sum += n ; / 累加 n += 2 ; / 修正为下一个奇数 while ( n 100 ) ; cout The sum is : sum endl ; 例例4.14 根据下面的公式求根据下面的公式求的值。计算到最后一项的绝对值小于的值。计算到最后一项的绝对值小于10-6时停顿。时停顿。 /4 = 1 1/3 + 1/5 1/7 # include void main( ) double pi = 0 , x = 1 ; int s = 1 ; do pi = pi + s / x ; x += 2 ; s
41、= - s ; while ( 1 / x = 1e-6 ) ; pi = pi * 4 ; cout pi= pi endl ; 3for语句语句当循环次数确定的时候,当循环次数确定的时候,用用 for 语句更为直观。语句更为直观。for语句的格式如下:语句的格式如下:for ( 表达式表达式1; 表达式表达式2; 表达式表达式3 ) 语句语句 /循环体循环体其中的表达式其中的表达式1通常用于通常用于对循环控制变量进展初始化对循环控制变量进展初始化; 表达式表达式2用于表示循环能否用于表示循环能否终了的条件终了的条件; 表达式表达式3用于对用于对循环控制变量作修正。循环控制变量作修正。for
42、语句执行的过程如下:语句执行的过程如下: 对表达式对表达式1求值求值; 对表达式对表达式2求值,假设求值,假设其值为真那么执行步骤其值为真那么执行步骤,否那么转步骤否那么转步骤; 执行循环体执行循环体; 对表达式对表达式3求值求值; 转步骤转步骤; 终了循环,去执行终了循环,去执行for语句的下一语句。语句的下一语句。例如:例如:int i ; for ( i = 1 ; i = 10 ; i+ ) cout $ ; 程序的运转结果是:程序的运转结果是:$for语句也属于语句也属于“先判别,先判别,后执行的循环语句,可以后执行的循环语句,可以用用while语句替代。语句替代。例如,上面这个程序段可例如,上面这个程序段可以改写为:以改写为:int i = 1 ; while (i = 10 ) cout $ ; i + ; C+中中for语句的方式很灵敏,语句的方式很灵敏,for后面的三个表达式均可以缺省但后面的三个表达式均可以缺省但中间的分号不能缺省。
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 急诊高钾血症急救药品用药顺序与避坑要点总结2026
- 无创呼吸机临床护理技巧
- 慢性支气管炎急性发作的护理查房课件
- 价值链分析图解报告撰写课件
- 机械通气临床应用
- 食品加工厂生产流程条例
- 呼吸机相关性肺炎的预防与控制
- 2026《CSCO原发性肝癌诊疗指南》解读-放射治疗部分
- 2026年鞋帽行业智能制造创新案例报告
- 2026年产科护理操作技术并发症六月份考核测试卷及答案
- 施工过程各阶段质量安全的保证措施
- 1.2数据的计算课件-高中信息技术必修一
- 数字音频处理器培训课件
- 云南劳动合同续签协议书
- 《钢结构设计原理》课件 第6章 拉弯和压弯构件
- 《宫颈癌的早期诊断》课件
- 气道管理及呼吸支持
- 借款担保人协议书
- 人教版中考物理复习第三章物态变化教学课件
- DBJ52T 088-2018 贵州省建筑桩基设计与施工技术规程
- 看图猜词游戏规则模板
评论
0/150
提交评论