- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[工学]第4章 控制结构
第4章 控制结构 第4章 控制结构 比较两个量的运算符称为关系运算符。 在C语言中有以下关系运算符: ,= , ,= ,= = ,!= 关系运算符的优先级: (1) 、=、、=优先级相等,= =、!=优先级相等,前者高于后者。 (2) 算术运算符 关系运算符 赋值运算符 按照运算符的优先顺序可以得出: ab cd (ab) (cd) !b= =c||da ((!b)= =c)||(da) a+bc x+yb ((a+b)c) ((x+y)b) (4)关于逻辑运算的说明 表达式 a b c 的求解过程 只有a为真,才判别b的值;只有a和b均为真,才判别c的值。 只要a为假,不再判别b和c的值,直接求得表达式的值为假。 表达式 a || b || c 的求解过程 只要a为真,就不再判别b和c的值,直接求得表达式的值为真。 只有a为假,才判别b的值;只有a和b均为假时,才判别c的值。 例. 分析下面程序的运行结果。 Void main() { int x=5,y=9,k=1,a; a=x++||y++k++; printf(a=%d, x=%d, y=%d, k=%d\n,a,x,y,k); } 4.3.3 for循环语句 for语句是C语言所提供的功能更强,使用更广泛的一种循环语句。 for (表达式1;表达式2;表达3) 语句; 表达式1(控制变量的初始化 ):给循环变量赋初值,也允许在for语句外给循环变量赋初值,此时可省略该表达式。 表达式2 (循环条件) :一般为关系或逻辑表达式。 表达式3通常可用来修改循环变量的值,一般是赋值语句。 4.3 循环结构 1.计算表达式1的值。 2.计算表达式2的值,若值为真(非0)则执行循环体一次,否则跳出循环。 3.然后再计算表达式3的值,转回第2步重复执行。 表达式2 语句 非0 0 语句 求解表达式1 求解表达式3 for 语句的执行过程 在整个for循环过程中,表达式1只计算一次。 表达式2和表达式3则可能计算多次。 循环体可能多次执行,也可能一次都不执行。 for语句的执行过程: 4.3 循环结构 void main() { int n,s=0; for(n=1;n=100;n++) s=s+n; printf(s=%d\n,s); } 本例for语句中的表达式3为n++,实际上也是一种赋值语句,相当于n=n+1,以改变循环变量的值。 例:用for语句计算s=1+2+3+...+99+100 4.3 循环结构 void main() {int i,n; float t; printf(please input n(n=0):); scanf(%d,n); t=1.0; /*给变量t赋初值*/ for(i=1;i=n;i++) t=t*i; printf(%d!=%f\n,n,t); } 例: 使用for循环语句求n! 4.3 循环结构 (1)for语句的一般形式中的“表达式1”可以省略,此时应在for语句之前给循环变量赋初值。注意此时,其后的分号不能省略。 例如:for(; i=n; i++) t=t*i; 执行时,跳过“求解表达式1”这一步,其他不变。 (2)如果表达式2省略,即不判断循环条件,循环无终止地进行下去。也就是认为表达式2 始终为真,在形式上构成死循环。 例如:for(i=1; ; i++) t=t*i; (3)表达式3也可以省略,但此时程序设计者应另外设法保证循环能正常结束,表达式3的功能放到循环体内。 例如:for(i=1;i=n;) { t=t*i; i++; } 说明:(以求1+……+n为例) 4.3 循环结构 (4)可以省略表达式1和表达式3,只有表达式2,即只给循环条件,如: int i=1; for(;i=n;) { t=t*i; i++;} (5)3个表达式都可省略,例如:for(;;) 语句 相当于 while(1)语句。 (6)表达式1和表达式3可以是一个简单的表达式,也可以是逗号表达式,即包含一个以上的简单表达式,中间用逗号间隔。 例如: for(t=1, i=1;i=n ; t=
文档评论(0)