c语言章分支结构_第1页
c语言章分支结构_第2页
c语言章分支结构_第3页
c语言章分支结构_第4页
c语言章分支结构_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

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

文档简介

1、本章要点本章要点 分支结构?作用?分支结构?作用? switch 语句中的语句中的 break 作用?作用? 逻辑运算、关系运算逻辑运算、关系运算 相同?不同?相同?不同? 字符型字符型数据在内存中是数据在内存中是如何存储如何存储的?的?第第3章章 分支结构分支结构3.1 统计输入的一批字符中各类字符的数量统计输入的一批字符中各类字符的数量例例3-1 输入输入10个字符,统计其中英文字母、数字字符和个字符,统计其中英文字母、数字字符和其他字符的个数。其他字符的个数。英文字母英文字母 (ch = a & ch = A & ch = 0 & ch = 9 其他字符其他字符

2、除此外除此外3.1.1 程序解析程序解析#include int main(void) int i, digit, letter, other; char ch; digit = letter = other = 0; printf( Enter 10 characters: ); Enter 10 characters: Reold 123?letter=5, digit=3, other=2 处理方法:处理方法:逐个输入与判断逐个输入与判断3.1.1 程序解析程序解析for(i = 1; i = a & ch = A & ch = 0 & ch = a &

3、ch = A & ch = 0 & ch = 0 & ch = a & ch = A & ch = -1 并且并且 x = -1 & x = 1关系运算关系运算 x 1) &(y1)逻辑运算符的含义逻辑运算符的含义逻辑非逻辑非 ! (x1)!(x1) 即 x1)|(y1)逻辑运算符的功能逻辑运算符的功能 a b a&b a|b !a假假 假假假假 真真真真 假假 真真 真真假假真真假假假假假假真真真真真真真真真真假假假假逻辑表达式逻辑表达式逻辑表达式:用逻辑表达式:用逻辑运算符逻辑运算符将将逻辑运算对象逻辑运算对象连接起来连接起来

4、的式子。的式子。 (ch = a) & (ch = a & ch = a & ch = A & ch = a & ch = A & ch= 0 & ch = 9) digit +;else other +;实现多路选择实现多路选择else if 语句语句if (表达式1) 语句1else if (表达式2) 语句2 else if (表达式n-1) 语句n-1 else 语句n假假表达式表达式1表达式表达式2语句语句1语句语句2语句语句n-1语句语句n真真表达式表达式n-1真真假假真真假假假假例例3-3 分段计算水费分段计算水费004(

5、)01532.510.515xxyf xxxx源程序源程序分段计算水费分段计算水费# include int main(void) double x, y; printf(Enter x:); scanf(%lf, &x); if (x 0) y = 0; else if (x = 15) y = 4 * x / 3; else y = 2.5 * x - 10.5; printf(f(%.2f) = %.2fn, x, y); return 0;Enter x: -0.5f(-0.50) = 0.00 Enter x: 9.5f(9.50) = 12.67Enter x: 21.3f

6、(21.30) = 42.753.2 查自动售货机中商品的价格查自动售货机中商品的价格例例3-4 3.2.1 程序解析程序解析假设自动售货机出售假设自动售货机出售4种商品,薯片种商品,薯片(crisps)、爆米花、爆米花(popcorn)、巧克、巧克力力(chocolate)和可乐和可乐(cola),售价分别是每份,售价分别是每份3.0、2.5、4.0和和3.5元。在屏幕上显示以下菜单,用户可以连续查询商品的价格,当查询元。在屏幕上显示以下菜单,用户可以连续查询商品的价格,当查询次数超过次数超过5次时,自动退出查询;不到次时,自动退出查询;不到5次时,用户可以选择退出。当次时,用户可以选择退出

7、。当用户输入编号用户输入编号14,显示相应商品的价格;输入,显示相应商品的价格;输入0,退出查询;输入,退出查询;输入其他编号,显示价格为其他编号,显示价格为0。1 Select crisps2 Select popcorn 3 Select chocolate4 Select cola 0 Exitint main(void) int choice, i; double price; for( i = 1; i = 5; i+) printf(1 Select crisps n); printf(2 Select popcorn n); printf(3 Select chocolate n

8、); printf(4 Select cola n); printf(0 exit n); printf(Enter choice: ); scanf(%d, &choice); if(choice = 0) break; switch (choice) case 1: price=3.0; break; case 2: price=2.5; break; case 3: price=4.0; break; case 4: price=3.5; break; default: price=0.0; break; printf(price = %0.1fn, price); printf

9、(Thanks n); 1 Select crisps2 Select popcorn 3 Select chocolate4 Select cola 0 ExitEnter choice: 11 Select crisps2 Select popcorn 3 Select chocolate4 Select cola 0 ExitEnter choice: 7price = 0.0price = 3.01 Select crisps2 Select popcorn 3 Select chocolate4 Select cola 0 ExitEnter choice: 0Thanks3.2.2

10、 switch语句处理多分支选择语句处理多分支选择3种情况种情况1、在、在switch语句的每个语句段中都使用语句的每个语句段中都使用break语句语句switch(表达式) case 常量表达式1:语句段1; break; case 常量表达式2:语句段2 ; break; . case 常量表达式n:语句段n ; break; default : 语句段n+1 ; break;表达式值表达式值=常量表达式常量表达式 2 的值的值表表达达式式语句段语句段1语句段语句段2语句段语句段n语句段语句段n+1表达式的值表达式的值=常量表达式常量表达式 1 的值的值表达式值表达式值=常量表达式常量表达

11、式 n 的值的值其他其他breakbreakbreakbreakswitch (choice) case 1: price=3.0; break; case 2: price=2.5; break; case 3: price=4.0; break; case 4: price=3.5; break; default: price=0.0; break;用用else-if 如何实现?如何实现?求解简单表达式求解简单表达式例例3-5 输入一个形式如输入一个形式如 “操作数操作数 运算符运算符 操作数操作数” 的四则运算表达式,输出运算结果。的四则运算表达式,输出运算结果。例如:例如:Type i

12、n an expression: 3.1 + 4.8 =7.9 源程序源程序int main(void) char operator; double value1, value2; printf(Type in an expression: ); scanf(%lf%c%lf, &value1, &operator, &value2); switch(operator) case +: printf(=%.2fn, value1+value2); break; case -: printf(=%.2fn, value1-value2); break; case *: p

13、rintf(=%.2fn, value1*value2); break; case /: printf(=%.2fn, value1/value2); break; default: printf(Unknown operatorn); break; return 0;Type in an expression: 3.1+4.8 = 7.9如果除数为如果除数为0?2、在、在switch中不使用中不使用breakswitch(表达式表达式) case 常量表达式常量表达式1:语句段:语句段1; case 常量表达式常量表达式2:语句段:语句段2; . case 常量表达式常量表达式n:语句段:语

14、句段n; default : 语句段语句段n+1;switch (choice) case 1: price=3.0; case 2: price=2.5; case 3: price=4.0; case 4: price=3.5; default: price=0.0; 表达式的值表达式的值=常量表达式常量表达式 2 的值的值表表达达式式语句段语句段1语句段语句段2语句段语句段n语句段语句段n+1表达式表达式的值的值= =常量表达式常量表达式 1 的值的值表达式的值表达式的值=常量表达式常量表达式 n 的值的值其他其他price=?3、在、在switch的某些语句段中使用的某些语句段中使用b

15、reak例例3-6 输入输入10个字符,分别统计出其中空格或回个字符,分别统计出其中空格或回车、数字和其他字符的个数车、数字和其他字符的个数。int main(void) int blank, digit, i, other; char ch; blank = digit = other = 0; printf(Enter 10 characters: ); Enter 10 characters: Reold 123?blank=1, digit=3, other=6例例3-6 统计各类字符的个数统计各类字符的个数for(i = 1; i = 10; i+) ch = getchar ();

16、 switch (ch) case : case n: blank +; break; case 0 : case 1 : case 2 : case 3 : case 4 : case 5 : case 6 : case 7 : case 8 : case 9 : digit +; break; default: other +; break; printf(blank=%d, digit=%d, other=%dn, blank, digit, other);return 0; Enter 10 characters: Reold 123?blank=1, digit=3, other=6

17、3.3 分支结构程序设计分支结构程序设计 分支结构一般分为分支结构一般分为二分支二分支多分支两种结构多分支两种结构3.3.1 二分支结构和基本的二分支结构和基本的 if 语句语句3.3.2 多分支结构与嵌套的多分支结构与嵌套的 if 语句和语句和switch语句语句3.3.1 二分支结构和基本的二分支结构和基本的 if 语句语句if (表达式表达式) 语句语句1else 语句语句2if (表达式表达式) 语句语句1语句语句1表达式表达式语句语句2真真假假语句语句1表达式表达式真真假假一条语句判断数字的奇偶性判断数字的奇偶性例例3-7 输入输入1个整数,判断该数是奇数还是偶数。个整数,判断该数是

18、奇数还是偶数。number % 2 = 0源程序源程序判断数字的奇偶性判断数字的奇偶性int main(void) int number; printf(Enter a number: ); scanf(%d, &number); if(number % 2 = 0) printf(Tne number is even. n); else printf(Tne number is odd. n); return 0;Enter a number: 329 Tne number is odd.Enter a number: 1028Tne number is even.求绝对值求绝对值例

19、例3-8 输入输入1个整数,输出它的绝对值个整数,输出它的绝对值 。当当number = 0时时? 不变不变用一路用一路if即可即可 源程序源程序求绝对值求绝对值#include int main(void) int number; printf(Enter a number: ); scanf(%d, &number); if(number 0) number = -number; printf(The absolute value is %d.n, number); return 0;Enter a number: 10 The absolute value is 10.Enter

20、 a number: -300 The absolute value is 300.3.3.2 多分支结构与嵌套的多分支结构与嵌套的 if 语句和语句和switch语句语句多种形式多分支结构多种形式多分支结构实现方法实现方法: : 嵌套嵌套 if 语句语句 else if 语句语句嵌套的嵌套的 if - else语句语句 switch语句语句if (表达式表达式1) 语句语句1else if(表达式表达式2) 语句语句2else if(表达式表达式n-1) 语句语句n-1else 语句语句n假假表 达 式表 达 式1表 达 式表 达 式2语句语句1语句语句2语句语句n-1语句语句n真真 表达式表达式n-1假假真真 假假假假真真 else if 语句语句n个分支需要个分支需要n-1次比较次比较嵌套的嵌套的 if else 语句语句if(表达式表达式1)if(表达式表达式2) 语句语句1else 语句语句2 elseif(表达式表达式3) 语句语句3 else 语句语句4 表达式表达式1表达式表达式3语句语句4真真 假假表达式表达式2语句语句3语句语句1语句语句2真真 真真 假假假假 x2 x1y=x+1y=x+2真真 假假真真

温馨提示

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

评论

0/150

提交评论