第三章程序的控制结构 3.1选择结构 3.2循环结构 3.3编译预处理
第三章 程序的控制结构 3.1 选择结构 3.2 循环结构 3.3 编译预处理
3.1选择结构 解题的步驟: 问题提出 计算分段函数: 输入X 3-XX≤0 否 X≤0 2x>0 是 C语言提供的选择结构有两 y=3-X 2/x 种:if语句、 switch语句。 输出V的值
问题提出: 计算分段函数: y= 3-x x≤0 2/x x>0 解题的步骤: 输入x x≤0 是 y=3-x y=2/x 否 输出y的值 C语言提供的选择结构有两 种: if语句、switch语句。 3.1 选择结构
3.3.1if语句 if语旬:对所给条件进行判定。根据判定结鼎决定是 否执行程序段。 语旬形式: if(表达式){语旬} 假(0 表达式 语句执行流程 真(非0 语句
3.3.1 if 语句 if语句:对所给条件进行判定,根据判定结果决定是 否执行程序段。 语句形式: if (表达式) {语句}; 语句执行流程: 表达式 语句 真(非0) 假(0)
例3-1:读程序,理解数值作为表达式 #include void maino i int 1=10, m=3 程序运行结果: if(i=0) i is not o printf( i is not0n”) if(m) i is not o printf(" i is not o')
例3-1:读程序,理解数值作为if 表达式 #include void main() { int i=10,m=3; if(i!=0) printf(“i is not 0\n”); if(m) printf(“i is not 0\n”); } 程序运行结果: i is not 0 i is not 0
例3-2:读程序,理解”〓与”=的作用及区别 #include void maino i int m=10; fm==100 pint(m==%d”m) f(m=100) printf(" m is assigned %dn,, m) 程序运行结果 m is assigned 100
例3-2:读程序,理解”==”与”=”的作用及区别 #include void main() { int m=10; if(m==100) printf(“m==%d”,m); if(m=100) printf(“m is assigned %d\n”,m); } 程序运行结果: m is assigned 100
3.3.1if-else语旬 ●语旬形式: if(表达式){语句1;} else{语旬2 ●语旬执行流程: 假(0 表达式 真(非0) 语旬1 语句2 if-else语旬适合于解决双分支选择问题
if (表达式) {语句1;} else {语句2;} 表达式 语句1 真(非0) 假(0) 语句2 3.3.1 if-else 语句 if-else 语句适合于解决双分支选择问题 语句形式: 语句执行流程:
例3-3:输入一个蓬数,判断该蕘数的奇偶性 include void maino 输入m int m: pint(" input:”); scanf(%d”,&m) m%2=0 f(m%2==0 真 printf(“%d是偶数ln”,m); else 偶数奇数 pin(“d是奇数n”,m) 结束
例3-3:输入一个整数,判断该整数的奇偶性 #include void main() { int m; printf(“input m:”); scanf(“%d”,&m); if(m%2==0) printf(“%d 是偶数\n”,m); else printf(“%d 是奇数\n”,m); } 输入m m%2==0 偶数 结束 真 假 奇数
例3-4:读程序,理解浮点数的运算与比较 #include void maino float f f=1.0;f=f/130;f=f*13.0; f(f=1.0) printf( f is still 1.0\n); else printf(f isnt still 1.0n) 程序运行结果: fisn’t1.0
例3-4:读程序,理解浮点数的运算与比较 #include void main() { float f; f=1.0; f=f/13.0; f=f*13.0; if( f==1.0) printf( “f is still 1.0\n”); else printf( “f isn’t still 1.0\n”); } 程序运行结果: f isn’t 1.0
注意 有的 F-else语旬可以用条件运算待(?:)来实现 if (a>b) maxed max=(a>b)?a: b else maxed
注意: 有的if-else语句可以用条件运算符(? :)来实现 if(a>b) max=a’ else max=b; max=(a>b)?a:b;
例3-5:输入一个英文字符,若为大写则改为小写,输 出得到的字符。 include void maino char zm scanfe(%c”,&zm) Zm=(Zm>=A&&zm<=z)?(zm+32);zm); printf(96c”,zm) 程序运行结果 B
例3-5:输入一个英文字符,若为大写则改为小写,输 出得到的字符。 #include void main() { char zm; scanf(“%c”,&zm); zm=(zm>=‘A’&& zm<=‘Z’) ?(zm+32):zm) ; printf(“%c”,zm); } 程序运行结果: B b