第四章--选择结构

发布时间:2021-06-07

第四章 选择结构

主 要 内 容1. 关系、逻辑、条件运算符和表达式

2. if语句3. 程序举例

switch 语句

第四章 选择结构

关系运算 > >= <

对两个运算量之间的大小比较 <= = = != 结合性:从左向右 假 0 z=x<y;

关系表达式: int x=2, y=3,z; 注意:

值:真 1 z=x==y;

(1)字符数据的比较按照ASCII码值进行。 z= a > A

(2)与数学上的关系式有区别:例:5>2>7>8的值为0 1<=x<=2 不表示x在[1,2]区间.

第四章 选择结构

逻辑运算优 先 级

真 1

假 0 假 亦真

! (逻辑非) 双 目 &&(逻辑与) ||(逻辑或)

两者全真 才为真 一个为真 就是真

例:z=5&&7;

z=9>2&&7<5- !0;

注意: (1)在逻辑运算中,非0值参加逻辑运算时被看成1处理 例: z=!5;(2) &&表达式中,一端值为0,则不用计算另一端, 表达式的值肯定为0 例:z=7<2&&8-5; (3) ||表达式中,一端为非0,则不用计算另一端,

表达式的值肯定为1 例:z=7>2||2<0;

第四章 选择结构

条件运算 e1?e2:e3

? :

结合性从右至左

若e1为真(非0),表达式的值为e2的值, 若e1为假,为e3的值

例: min=a<b?a:b

x>3?6:0.2

第四章 选择结构

if语句

形式1 P N B if(表达式) 语句A 例: if(x>y)

Y A

printf("%d", x);else printf(" %d", y);

else语句B 形式2 if(表达式)

Y

P

N

语句体Aelse 语句体B

例: if(x>y) printf("%d", x);

A

第四章 选择结构

if(表达式) 语句体A else 语句体B

if(x>y) {

x=(x+2)*6;printf("%d", x);

if(x>y) printf("%d", x); else printf("%d", y);

} else { y=y+4; printf(" %d", y); }

第四章 选择结构

if语句的嵌套 一般形式

if (表达式1)if(表达式) 语句体A if (表达式2) 语句1 内嵌if

else语句体B else

else 语句2if (表达式3) 语句3 else 语句4

内嵌if

第四章 选择结构

1. 注意: if (表达式)中,表达式可以是逻辑、关系和算术表达式。 2. 若语句不止一条,则必须用{ }括起来。在{ }外不用分号.不加{ }时, 语句体到第一个分号处结束。 3. else不能单独使用,与最近的if 配对,可加{ } 来改变配对关系。

#include<stdio.h> int main( ) { int x=2,y=1; if(x>y) x=x+2; printf("x=%d\n", x); else y=y+2; printf("y=%d\n", y); }

第四章 选择结构

程序举例 1、输入2个数a,b,要求按由小到大的顺序输出。#include<stdio.h> int main( ) #include<stdio.h>

int main( ){float a,b,t; scanf("%f,%f",&a,&b); if(a>b) printf ("%f,%f\n",b,a); else printf("%f,%f\n",a,b); }

{float a,b,t;scanf("%f,%f",&a,&b);

if(a>b) {t=a; a=b; b=t; }printf("%f,%f\n",a,b); }

第四章 选择结构

2、输入3个数a,b,c, 要求按由小到大的顺序输出。#include<stdio.h> int main() { float a,b,c,t; scanf("%f,%f,%f",&a,&b,&c); if(a>b) {t=a; a=b; b=t; } if(a>c) {t=a; a=c; c=t; } if(b>c) {t=b; b=c; c=t; } printf("%f,%f,%f\n",a,b,c); }

第四章 选择结构

3、有一函数:

–1 y= 0 1 (x<0) (x=0) (x>0) #include <stdio.h> int main ( ) { int x, y; scanf("%d", &x); if (x<0) y= –1; if (x= =0) y=0; if (x>0) y=1; printf ("y=%d\n", y); }

编一程序,

输入一个x值,输出y值。

第四章 选择结构

3、有一函数:–1 y= 0 1 (x<0) (x=0) (x>0)

#include <stdio.h> main ( ) { int x, y; scanf("%d", &x); if (x<0) y= –1; else

编一程序,

输入一个x值,输出y值。

if (x= =0) y=0; else y=1; printf ("y=%d\n", y); }

第四章 选择结构

switch语句

多路分支选择switch(表达式) { case 常量表达式1: case 常量表达式2: … case 常量表达式n: default : } 语句1; 语句2; 语句n; 语句n+1;

执行:

计算条件表达式 没有匹配的case 执行default

以条件表达式值相同的case为入口 执行后面的各语句

第四章 选择结构

在执行switch结构时,当执行完某case 后的语句后,将顺序执 行后面case 后的语句。

switch(grade) { case A :printf(“85~100\n”); case B :printf(“70~84\n”); case C :printf(“60~69\n”); case D :printf(“<60\n”);

grade= A ;

85~100 70~84 60~69 <60 errorgrade= F ; error

default: printf(“error\n”); }

第四章 选择结构

break语句 无条件终止所在语句的执行,即跳出当前语句。switch(grade) { case A :printf(“85~100\n”); break; case B :printf(“70~84\n”); break; case C :printf(“60~69\n”); break; case D :printf(“<60\n”); break; default: printf(“error\n”); } 85~100 85~100 grade= A ;

70~84

第四章 选择结构

注意:(1)case常量表达式必须是整型或字符型。

(2)同一个switch结构中的常量表达式值必须互不相同。

(3)在switch结构中,case 与 default 的顺序可以任意, 各case之间的顺序也可以任意。

第四章 选择结构

程序举例

1、写程序,判断某一年是否是闰年。 能被4整除而不能被100整除,或者能被400整除的年份

#include <stdio.h> void main( ) { int year; scanf("%d",&year); if(year%4==0&&year%100!=0||year%400==0) printf("\n%d年是闰年",year);

elseprintf("\n%d年不是闰年",year); }

第四章 选择结构

2、运输公司对用户计算运费.路程越远,每吨每千米的运费越低。 标准如下: s<250 250≤s<500 500≤s<1000 1000≤ s<2000 2000≤ s<3000 3000≤ s 每吨每千米的基本运费p 折扣为d 没有折扣

2%折扣5%折扣

8%折扣10%折扣 15%折扣 货物重量w 总运费f 运输距离s f=p*s*w*(1-d);

第四章 选择结构

#include"stdio.h" void main( ) {float p,s,w,d,f; scanf("p=%f,s=%f,w=%f",&p,&s,&w); if(s<250) if(s>=250&&s<500) if(s>=500&&s<1000) if(s>=1000&&s<2000) if(s>=2000&&s<3000) if(s>=3000) f=p*s*w*(1-d); printf("f=%f\n",f); } d=0.0; d=0.02; d=0.05; d=0.08; d=0.10; d=0.15;

第四章 选择结构

主 要 内 容1. 关系、逻辑、条件运算符和表达式

2. if语句3. 程序举例

switch 语句

第四章

选择结构

上 机 作 业P112 4、 6、 8

第四章--选择结构.doc 将本文的Word文档下载到电脑

    精彩图片

    热门精选

    大家正在看

    × 游客快捷下载通道(下载后可以自由复制和排版)

    限时特价:7 元/份 原价:20元

    支付方式:

    开通VIP包月会员 特价:29元/月

    注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
    微信:fanwen365 QQ:370150219