4.3逻辑选择型程序设计 在上一章的例题中,计算一元二次方程的根时, 没有考虑判别式bb-4*a*c<0的情况;在计算三角形 面积时,也没有考慮s*(Sa)*(S-b)*(Sc)<0的情况。一 个高质量的程序应当能够对各种可能岀现的情况都加 以考慮,这样的程序称作可靠性高。本章学习了语 旬之后,我们就能很轻松地解决上述问题了。 ⅱf语旬是用來判断所给定的条件是否满足,根据 判定的结果(真或假)决定执行给定的某种操作之 16
16 在上一章的例题中,计算一元二次方程的根时, 没有考虑判别式b*b-4*a*c<0的情况;在计算三角形 面积时,也没有考虑 s*(s-a)*(s-b)*(s-c)<0的情况。一 个高质量的程序应当能够对各种可能出现的情况都加 以考虑,这样的程序称作可靠性高。本章学习了if 语 句之后,我们就能很轻松地解决上述问题了。 if 语句是用来判断所给定的条件是否满足,根据 判定的结果(真或假)决定执行给定的某种操作之一。 4.3 逻辑选择型程序设计
if语旬的形式1—单边选择结构 格式if(表达式)语句 执行过程 表达式取值非0,即条件成立,执行语句后继续向 判断条件〈下执行 表达式取值为0,即条件不成立,跳过语句向下 执行 入口) 语句 (出口)
17 一、if 语句的形式1—单边选择结构 格式: if (表达式) 语句 执行过程: 判断条件 表达式取值非0,即条件成立,执行语句后继续向 下执行 表达式取值为0,即条件不成立,跳过语句向下 执行 P 语句 (入口) (出口) Y N
f语句的形式1—单边选择 2x+1x>=0 main() 例如,求:y= X<0 I int x, y=0 scanf(%d",&x if(x>=0)y=2*x+1;/*语句*/ printf( x=%d, y=%d\n", x, y) 程序运行后,当从键盘上输入3<回车>时,程序运行 的结果是多少? 3,y=7 程序运行后,当从键盘上输入-5<回车>时,程序运行 的结果是多少? 运行程序 18
18 一、if 语句的形式1—单边选择结构 main( ) { int x,y=0; scanf("%d",&x); if ( x>=0) y=2*x+1; /* 语句 */ printf("x=%d,y=%d\n",x,y); } 程序运行后,当从键盘上输入3<回车>时,程序运行 的结果是多少? 程序运行后,当从键盘上输入-5<回车>时,程序运行 的结果是多少? x=3,y=7 x=-5,y=0 例如,求:y= 2x+1 x>=0 0 x<0 运行程序
if语旬的形式2—双边选择结构 格式:i(表达式)语句1 else语句2 执行过程 表达式取值非0即条件成立执行语句1后继续向下执行 判断条件 表达式取值为0即条件不成立跳过语句1执行语句2后向下执行 入口) 语句 语句2 (出口) 19
19 二、if 语句的形式2—双边选择结构 格式: if (表达式) 语句1 else 语句2 执行过程: 判断条件 表达式取值非0,即条件成立,执行语句1后继续向下执行 表达式取值为0,即条件不成立,跳过语句1执行语句2后向下执行 P 语句1 (入口) (出口) Y N 语句2
if语旬的形式2—双边选择结构 2x+1x>=0 例如,求:y= main( x2+1 i int x,; 这是一个 scanf(%d", &x); 双边结构 if(x>=0)y=2*x+1;/语句1* else y=x*x+1;/*语句2* printf(x=%d,y=%dn"x,y);) 程序运行后,当从键盘上输入3<回车>时,程序运行 的结果是多少? X=3,y=7 程序运行后,当从键盘上输入-5<回车>时,程序运行 的结果是多少? x=5,y=26 运行程序 20
20 二、if 语句的形式2—双边选择结构 main( ) { int x,y; scanf("%d",&x); if ( x>=0) y=2*x+1; /* 语句1 */ else y=x*x+1; /* 语句2 */ printf("x=%d,y=%d\n",x,y); } 程序运行后,当从键盘上输入3<回车>时,程序运行 的结果是多少? 程序运行后,当从键盘上输入-5<回车>时,程序运行 的结果是多少? x=3,y=7 x=-5,y=26 例如,求: y= 2x+1 x>=0 x 2+1 x<0 这是一个 双边结构 运行程序