C语言程序设计课件第05讲.ppt_第1页
C语言程序设计课件第05讲.ppt_第2页
C语言程序设计课件第05讲.ppt_第3页
C语言程序设计课件第05讲.ppt_第4页
C语言程序设计课件第05讲.ppt_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

if语句 switch语句 条件运算符,第五讲,Begin:,第四章 选择结构程序设计,4.1 用if语句实现选择结构,4.1.1 if语句的三种形式,格式一: 单分支结构 if ( ) 语句A ;,语句执行过程: 先判断条件(表达式),若条件成立,就执行语句A;否则,直接执行if后面的语句。该结构的流程图如右图所示。,例:if (grade =60) printf(“Pass n”);,注意:单分支结构只有在条件为真时,才执行给定的操作,如果条件为假,则不执行任何操作。,1)条件均为逻辑表达式或关系表达式,也可以是任意的数值类型。,2)语句可以是单语句,也可以是复合语句。 注意:在复合语句 外不需再加分号 。,例:if (3) printf(“O. K.n“); if (q) printf(“%dn“,a); if (3x & x=5) printf(“3x=5n“ );,4.1 用if语句实现选择结构,例:if (ab) t=a; a=b; b=t; ,说明:,例:键盘输入一个整数,输出该数的绝对值。,main () int shu; printf(“请输入一个整数%d:n“); scanf(“%d“, shu ); if ( shu 0 ) shu = -shu; printf(“该数的绝对值为: %d。n“, shu ); ,4.1 用if语句实现选择结构,格式二: 双分支结构 if ( ) 语句A ; else 语句B ;,注意: else子句是if语句的一部分,它不能作为语句单独使用,必须与if配对使用。,4.1 用if语句实现选择结构,语句执行过程: 先判断条件(表达式),若条件成立,就执行语句A;否则,执行语句B。即一定会执行语句A和语句B中的一句,且只能执行其中的一句。该结构的流程图如右图所示。,例:if (grade =60) printf(“Pass n”); else printf(“Failure”);,例 : 计算,void main ( ) float x, y; printf(“送数%f: n“); scanf(“%f“, ,4.1 用if语句实现选择结构,例: 任意输入两个不相等的数,将大数放入X, 小数放入Y中。,算法: 1.定义变量 2.给变量赋初值 3.比较x、y, 若xy, 交换两数 4.输出x、y,分析:两数比较,要么xy, 直接输出;要么xy,两数交换。,4.1 用if语句实现选择结构,程序: main( ) int x, y, t; printf(“n请输入两个整数%d%d:“); scanf(“%d%d“, ,格式三:多分支结构 if () 语句1 ; else if () 语句2 ; else if ()语句n-1 ; else 语句n ;,4.1 用if语句实现选择结构,语句执行过程: 先判断条件1(表达式1),若条件1成立,就执行语句1后,退出该if结构;否则,再判断条件2(表达式2),若条件2成立,则执行语句2后,退出该if结构;否则,再判断条件3(表达式3),若条件3成立,则执行语句3后,退出该if结构;。,例 : 计算,4.1 用if语句实现选择结构,程序: #include void main() float x,y; printf(“送数%f :n“); scanf(“%f“, ,例2:if ( a0 ) if ( b0 ) printf(“%d,%dn“, a, b); else printf(“%dn“, a); else if ( b0 ) printf(“%dn“, b); else printf(“n“);,在if语句中又包含有一个或多个if语句称为if语句的嵌套。 请说出以下两段程序的功能:,例1:if ( a0 ) if ( b0 ) printf(“%d,%dn“, a, b);,如果a,b都是正数,则输出a,b,输出a,b中的正数,4.1 用if语句实现选择结构,4.1.2 if语句的嵌套,为避免错误可用 将内嵌结构括起来以确定if与else的配对关系属内嵌范围。,说明: 嵌套不允许交叉。,else与if必须成对出现,且else总是与最近的一个未配对的if配对。,4.1 用if语句实现选择结构,例 :读程序。,main( ) int a=2, b=1, c=2; if (a) if ( b0 ) c=0; else c+ ; printf(“%dn“,c); ,main( ) int a=2, b=1, c=2; if (a) if (b0) c=0; else c+ ; printf(“%dn“,c); ,程序运行结果: 3,程序运行结果: 2,4.1 用if语句实现选择结构,例:任意输入三个整数,找出其中最大的整数。,4.1 用if语句实现选择结构,程序 :,main( ) int a, b, c, max ; printf (”请输入三个整数:%d%d%dn”); scanf( “%d%d%d“, ,4.1 用if语句实现选择结构,switch语句的格式:,switch(表达式) case :语句1;break; case :语句2;break; case :语句n-1;break; default :语句n ; break; ,4.2 用switch语句实现多分支选择结构,说明: 表达式:可以是整型表达式,或字符表达式,或枚举表达式。 case常量表达式():case也是关键字。常量表达式应与switch后的表达式类型相同,且各常量表达式的值不允许相同。 语句:可省略,或为单语句,或为复合语句。 default:关键字,可省略,也可出现在switch语句体内的任何位置。,4.2 用switch语句实现多分支选择结构,break语句,格式: break; 功能:强迫终止程序的执行,即提前退出程序的执行。 用法:只能用在switch语句和循环体中。,4.2 用switch语句实现多分支选择结构,switch语句执行过程:,执行: 若表达式 = 常量表达式, 则执行语句; 若表达式 != 常量表达式, 则执行default开始的(语句); 若程序中无default开始的语句, 则程序语句switch相当于一个空程序(语句)。,计算:计算表达式的值。,判断:表达式的值与常量表达式的值是否相等。,4.2 用switch语句实现多分支选择结构,注意:,表达式及常数表达式(由常数、符号常量组成的表达式)必须为整型,故它们也可用字符表达式。,case后的常数表达式的值不允许相同。,4.2 用switch语句实现多分支选择结构,switch语句中若没有default分支,则当找不到与表达式相匹配的的常量表达式时,不执行任何操作。,例:x=3; switch ( x ) case 0 :printf(“Ture!”) case 1 : printf(“False“); 该switch语句不执行任何操作,多个case可以共同使用一个语句序列,4.2 用switch语句实现多分支选择结构,例:switch(n) case 1 : case 3 : case 5 : case 7 : case 9 :printf(”奇数 n”); break ; case 0 : case 2 : case 4 : case 6 : case 8 :printf(”偶数 n”); break ; 该switch语句中,当n=1,3,5,7,9时,输出“奇数”; 当n=0,2,4,6,8时,输出“偶数”;,例: 输入一个02的数。,main( ) int x; printf(“请输入一个02的整数:“ ); scanf(“%d“, ,程序运行结果: 请输入一个02的整数:1 输入1。 输入2。 输入错误!,4.2 用switch语句实现多分支选择结构,例: 编程,计算 y 的值。,4.2 用switch语句实现多分支选择结构,#include “math.h“ void main ( ) float x , y ; int m ; printf( “请输入 05 之间的数%fn“ ); scanf( “%f“, ,4.2 用switch语句实现多分支选择结构,程序 :,例:任意输入两个数,和一个运算符(加、减乘、除),要求输出它们的运算结果。,4.2 用switch语句实现多分支选择结构,程序如下: #include “stdio.h“ void main ( ) float shu1, shu2, jieg; char yunsf; printf(”请输入运算符 + - * /:n”); yunsf = getchar ( ); printf(”请输入两个数 %f%fn”); scanf(“%f%f“, ,switch ( yunsf ) case + : jieg = shu1 + shu2 ; break; case - : jieg = shu1 - shu2 ; break; case * : jieg = shu1 * shu2 ; break; case / : jieg = shu1 / shu2 ; break; default : printf( “ 运算符输入错误 !n“ ); printf(“jieg = %.2f n“, jieg ); ,说明: 左图为条件表达式的流程图。 各表达式的类型可不同。,条件运算符( ? : ) 三目运算符,运算优先级为13,右结合性。,条件表达式:由条件运算符构成的表达式。,形式: ?,4.3 用条件表达式实现选择结构,例:读下列程序,写出运行结果。,main ( ) int a=1, b=1, c=1; a += b; b += c; c += a; printf(“(1)%dn“, ab?a:b ); printf(“(2)%dn“, ac?a-:c+); (a=b=c)? printf(“an“):printf(“bn“); printf(“(4)%d, %d, %dn“, a, b, c ); ,程序运行结果: (1)2,(2)3,b,(4)2, 2, 4,4.3 用条件表达式实现选择结构,例:读下列程序,写出运行结果。 ab?a:cd?c:d 其中a=1,b=2,c=3,d=4.,运行结果为:4. 该表达式等价于ab?a:(cd?c:d),例:用条件运算符表达3个数a ,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论