第四章 分支结构的C程序设计 4.1 if语句 4.2 switch语句 4.3 程序举例.

Slides:



Advertisements
Similar presentations
数据结构的引入. 通讯录管理 社团机构管理 校园导航管理 通讯录管理 社团机构管理 校园导航管理.
Advertisements

CSIM, PU C Language Introduction to the C Programming Language 重覆敘述 (for,while,break,continue) 適合重複性的計算或判斷.
10.2.switch语句.
5 选择结构.
第4章 选择结构程序设计 选择结构是计算机科学用来描述自然界和社会生活中分支现象的手段。其特点是:根据所给定选择条件为真(即分支条件成立)与否,而决定从各实际可能的不同操作分支中执行某一分支的相应操作,并且任何情况下恒有“无论分支多寡,必择其一;纵然分支众多,仅选其一”的特性。
第 5 章 流程控制 (一): 條件分支.
C语言实验 第一课 标题:学号+姓名.
第4章 选择结构程序设计 在现实生活中,需要进行判断和选择的情况是很多的 如果你在家,我去拜访你 如果考试不及格,要补考
第一章 程序设计入门.
C语言程序设计 第五章 选择结构程序设计.
第4章 选择结构程序设计.
C语言程序设计 课程 第5章 数组 主讲:李祥 博士、副教授 单位:软件学院软件工程系.
C#程序设计基础 $5 流程控制.
第2章 分支结构 P if语句 2.2 switch语句 2.3 用条件运算符转换大小写字母 2.4 程序举例
主讲教师:吴琼 微信群:C语言2016 QQ群: 密码scu2016 昵称:“真名+学号”
循环结构又称为重复结构:用来处理需要重复处理的问题,它是程序中一种很重要的结构。
Class 2 流程控制-選擇敘述與迴圈.
適用於多選一 可減少if 與 else配對混淆的錯誤.
第4章 选择结构程序设计 4.1 选择结构和条件判断 4.2 用if语句实现选择结构 4.3关系运算符和关系表达式
C程序设计.
If … else 選擇結構 P27.
第五章 选择结构程序设计 一、关系运算符和表达式 1、关系运算符 在程序中经常需要比较两个量的大小关系, 以决定程序下一步
Chap 2 用C语言编写程序 2.1 在屏幕上显示 Hello World! 2.2 求华氏温度 100°F 对应的摄氏温度
QQ: 李祥 QQ: 欢迎多种方式的学习交流,祝大家学有所成.
第5章 堆疊(Stacks) 5-1 堆疊的基礎 5-2 堆疊的表示法 5-3 堆疊的應用 - 運算式的計算與轉換
Introduction to the C Programming Language
第一单元 初识C程序与C程序开发平台搭建 ---观其大略
Chap 3 分支结构 3.1 简单的猜数游戏 3.2 四则运算 3.3 查询自动售货机中商品的价格.
C语言 程序设计基础与试验 刘新国、2012年秋.
Chap 3 分支结构 3.1 统计输入的一批字符中各类字符的数量 3.2 查询自动售货机中商品的价格 3.3 分支结构程序设计.
第3章 选择结构与循环结构 王德俊 上海交通大学继续教育学院.
第3讲 C++程序控制结构 3.1 顺序结构 3.2 分支结构 3.3 循环结构 3.4 转向控制 3.5 综合案例分析.
第五章 循环结构的C程序设计 5.1 while循环语句 5.2 do-while循环语句 5.3 for循环语句 5.4 多重循环
本章中將會更詳細地考慮有關重複的概念,並且會 介紹for和do…while等兩種用來控制重複的敘述 式。 也將會介紹switch多重選擇敘述式。 我們會討論直接和迅速離開某種控制敘述式的 break敘述式,以及用來跳過重複敘述式本體剩餘 部份的continue敘述式。 本章會討論用來組合控制條件的邏輯運算子,最後.
第二章 Java语言基础.
程序的三种基本结构 if条件分支语句 switch多路开关语句 循环语句 循环嵌套 break,continue和goto语句
第五章 习题课 电子信息与计算机科学系 曾庆尚.
第5讲 结构化程序设计(Part II) 周水庚 2018年10月11日.
第4章 PHP流程控制语句.
1.3 C语言的语句和关键字 一、C语言的语句 与其它高级语言一样,C语言也是利用函数体中的可执行 语句,向计算机系统发出操作命令。按照语句功能或构成的不 同,可将C语言的语句分为五类。 goto, return.
目录 9.1 结构体类型 9.2 共用体类型 9.3 枚举类型 9.4 类型声明符typedef 1.
C语言概述 第一章.
4 條件選擇 4.1 程式基本結構 循序式結構 選擇式結構 重複式結構 4-3
第三章 C++的语句和简单的程序设计 主要内容:
1.2 C语言程序的结构与书写规则 一、 C语言程序的总体结构
Introduction to the C Programming Language
目录 4.1选择结构程序设计的概述 4.2关系运算符和表达式 4.3逻辑运算符和表达式 4.4用if语句实现选择结构程序设计
C语言程序设计 第一章 数据类型, 运算符与表达式 第二章 顺序程序设计 第三章 选择结构程序设计 第四章 循环控制 第五章 数组.
浙江长征职业技术学院—计算机与信息技术系—相方莉制作
輸出與輸入(I/O).
第十四章 若干深入问题和C独有的特性 作业: 函数指针 函数作参数 函数副作用 运算 语句 位段 存储类别 编译预处理
C程序设计.
几种基本语句 条件语句 广州市63中 岑光.
第4章 Excel电子表格制作软件 4.4 函数(一).
<编程达人入门课程> 本节内容 为什么要使用变量? 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ:
第三章 程序的控制结构 第一节 概述 第二节 if选择结构 第三节 switch语句.
第二章 Java语法基础.
第九节 赋值运算符和赋值表达式.
Introduction to the C Programming Language
第三章 基本的輸出與輸入函數 (Basic Output & Input Function)
#include <iostream.h>
第二章 Java基本语法 讲师:复凡.
第五章 逻辑运算和判断选取控制 §5.1 关系运算符和关系表达式
C/C++基礎程式設計班 字元與字串 講師:林業峻 CSIE, NTU 3/14, 2015.
第二章 Java基本语法 讲师:复凡.
C++语言程序设计 C++语言程序设计 第九章 类的特殊成员 第十一组 C++语言程序设计.
多重條件選擇敘述
第三章 流程控制 程序的运行流程 选择结构语句 循环结构语句 主讲:李祥 时间:2015年10月.
Q1(a) 小偉打算編寫一個程序。該程序把兩個44的表內的數字相加。表3內的數字是由表1和表2應格子內的數字相加而成。例如:
C语言基础学习 从外行到入门.
Presentation transcript:

第四章 分支结构的C程序设计 4.1 if语句 4.2 switch语句 4.3 程序举例

4.1 if 语 句 4.1.1 if语句的简单形式 if(表达式)语句 图 4.1 if语句执行过程

例 4.1 打印出不及格的成绩。

4.1.2 if~else结构 1. if~else结构 if(表达式) 语句1 else 语句2 图 4.2 if~else语句执行过程

例 4.2 打印成绩≥60分为“Pass”, 否则为“Fail”。 解 我们可以使用两种方法编程:  解 我们可以使用两种方法编程:  方法一: 用两个简单的if语句实现:  main( ) { float score;  scanf(″%f″, &score); if(score<60.0) printf(″score=%5.1f---Fail\n″, score);  if(score>=60.0) printf(″score=%5.1f---Pass\n″, score);  }

运行:  50 score=50.0---Fail 再次运行:  80 score= 80.0---Pass 在第二个if语句中,if(score>=60.0)是不能缺少的,否则不管score是否小于60,都将打印出第二行的结果。

方法二: 用if~else语句实现: 运行:  50 score=50.0---Fail 再次运行:  80 main( ) { float score;  scanf(″%f″, &score);  if(score<60.0) printf(″score=%5.1f---Fail\n″, score);  else printf(″score=%5.1f---Pass\n″, score);  } 运行:  50 score=50.0---Fail 再次运行:  80 score=80.0---Pass

2. 条件运算符的使用 当if~else结构中的语句是表达式语句时, 就可以使用条件运算符“? :”了,即下列if~else语句:  if(表达式1) 表达式2; else 表达式3; 用条件运算符写成通用形式即为 表达式1? 表达式2: 表达式3 这是一个条件表达式,其功能是:当表达式1的值为真(非零)时,整个条件表达式的值就取表达式2的值;当表达式1的值为假(零)时, 整个条件表达式的值就取表达式3的值。

如下列语句段:  x=10;  if(x>9) y=100; else y=200;  可以写成:  y=x>9? 100: 200;

例 4.3 输入x的值, 当x>0时调用sqrt(x),否则调用fabs(x)。 #include <math.h> main( ) { float x, y;  scanf(″%f″, &x); #= y=x>0? sqrt(x): fabs(x);  printf(″x=%f, y=%f\n″, x, y);  } 运行:  9.0 x=9.000000, y=3.000000 再次运行:  -9.0  x=-9.000000, y=9.000000

例 4.4 打印a, b两个数中大者。  方法一: 用if~else结构实现: 方法二: 用条件运算符实现:  main( )  { int a, b;  scanf(″%d, %d″, &a, &b);  if (a>b) printf(″max=%d\n″, a);  else printf(″max=%d\n″, b);  } 方法二: 用条件运算符实现:  main( )  { int a, b;  scanf(″%d, %d″, &a, &b);  printf(″max=%d\n″, a>b? a:b);  }

3. if语句的嵌套 例 4.5 输入一个学生成绩,当成绩≥90时,打印“Very Good”;当80≤成绩<90时,打印“Good”; 当60≤成绩<80时,打印“Pass”;当成绩<60分,打印“Fail”。 main( ) { float score;  scanf(″%f″, &score); if(score >= 80) if(score>=90) printf(″Very Good\n″);  else printf(″Good\n″);  else if(score>=60) printf(″Pass\n″);  else printf(″Fail\n″);  }

运行:  85 Good 例如语句段: if(x) if(y) printf(″A″);  else printf(″B″);  其中else语句是与if(y)相匹配。 如果与if(x)相匹配, 则if(y)子句必须加花括号写成:  if(x) { if(y) printf(″A″); } else printf(″B″);

4.1.3 else if结构 else if结构的形式如下:  if(表达式1) 语句1 else if(表达式2) 语句2 … else if(表达式n) 语句n else 语句 n+1

图 else if结构执行过程 4.3

例 4.6 将例4.5用else if结构来实现。 运行:  58 Fail main( ) { float score;  scanf(″%f″, &score);  if(score>=90) printf(″Very Good\n″); else if (score>=80) printf(″Good\n″);  else if(score>=60) printf(″Pass\n″); else printf(″Fail\n″);  } 运行:  58 Fail

说明:  (1) 在else if结构中,if语句…else if 语句…else语句属于同一程序模块。程序每运行一次,仅有一个分支的语句能得到执行。  (2) 各个表达式所表示的条件必须是互相排除的,也就是说, 只有条件1(表达式1)不满足时才会判断条件2,只有条件2也不满足时才会判断条件3,其余依次类推,只有所有条件都不满足时才执行最后的else语句。

例4.6的程序也可写成:  main( ) { float score;  scanf(″%f″, &score);  if (score<60) printf(″Fail\n″);  else if(score<80) printf(″Pass\n″);  else if(score<90) printf(″Good\n″);  else printf(″Very Good\n″);  }

如写成以下形式就错了:  main( ) { float score;  scanf(″%f″, &score);  if (score<60) printf(″Fail\n″);  else if(score>=60) printf(″Pass\n″);  else if(score>=80) printf(″Good\n″);  else printf(″Very Good\n″);  }

4.2 switch 语 句 switch语句的形式:  switch(表达式) { case 常量1: 语句段1 … default: 语句段n }

switch语句的执行过程:  switch语句先计算表达式的值,然后同多个case语句后的常量比较,找到相等的case常量则执行该常量冒号后的语句段, 并从这个入口一直执行下面所有冒号后的语句,直到switch语句结束。如果执行一个或几个冒号后的语句就要跳出switch语句,则可以在跳出处使用break语句。如果switch语句后表达式的值找不到匹配的case常量,就执行default后面的语句段直到结束。default是任选项,如果没有该语句, 则在所有配对都失败时,什么也不执行。

例 4.7 在显示器上显示一个菜单程序的模型。 #include <conio.h> main( ) 例 4.7 在显示器上显示一个菜单程序的模型。 #include <conio.h> main( ) { void dummy( );  char ch;  printf(″1. 输入记录\n″);  printf(″2. 记录列表\n″);  printf(″3. 删除记录\n″);  printf(″4. 修改记录\n″);  printf(″请输入选择: \n″);  ch=getche( );  switch(ch)

{ case ′1′: printf(″输入记录\n″);  dummy( ); break;  case ′2′: printf(″记录列表\n″);  dummy( ); break; case ′3′: printf(″删除记录\n″);  case ′4′: printf(″修改记录\n″);  default: printf(″选择错!\n″);  } void dummy() { }

运行:  1. 输入记录 2. 记录列表 3. 删除记录 4. 修改记录 请输入选择:  程序运行后, 屏幕停留在此, 执行ch=getche( )时, ch接受用户键入字符的ASCII码。我们从键盘键入1后显示: 1 输入记录

4.3 程序举例 例 4.8 编写一个可由用户键入简单表达式的程序,形式如下:  number operator number  4.3 程序举例 例 4.8 编写一个可由用户键入简单表达式的程序,形式如下:  number operator number  该程序要计算该表达式并以两位小数显示结果。  我们要识别的运算符operator为加、 减、 乘、 除。

main( ) { float value1, value2;  char operator;  printf(″Input your expression: \n″);  scanf(″%f%c%f″, &value1, &operator, &value2);  if (operator==′+′) printf(″%.2f\n″, value1+value2);  else if (operator==′-′)  printf(″%.2f\n″, value1-value2);  else if (operator==′*′)  printf(″%.2f\n″, value1*value2);  else if (operator==′/′)  if(value2==0.0) printf(″Division by zero.\n″);

esle printf(″%.2f\n″, value1/value2);  else  printf(″Unknown operator.\n″);  } 运行:  Input your expression:  123.5+59.3 182.80 再次运行:  198.7/0 Division by zero.  125$28 Unknown operator.

例 4.9 用switch语句改写例4.8。 main( ) { float value1, value2;  char operator;  printf(″Input your expression: \n″);  scanf(″%f%c%f″, &value1, &operator, &value2);  switch(operator) { case ′+′: printf(″%.2f\n″, value1+value2);  break;  case ′-′: printf(″%.2f\n″, value1-value2);  break;

case ′*′: printf(″%.2f\n″, value1*value2);  break;  case ′/′: if(value2==0.0) printf(″Division by zero.\n″);  else printf(″%.2f\n″, value1/value2);  default: printf(″Unknown operator.\n″);  } }

例 4.10 输入一个字符, 请判断是字母、 数字还是特殊字符? 例 4.10 输入一个字符, 请判断是字母、 数字还是特殊字符? #include <conio.h> main( ) { char ch;  printf(″请输入一个字符: ″);  /*在双引号内的字符串中, 可以出现汉字, 不影响程序运行*/ ch=getche( );  if((ch>=′a′ && ch<=′z′)||(ch>=′A′ && ch<=′Z′)) printf(″\n它是一个字母!\n″);  /* 注意前后的\n, 养成良好的编辑习惯 */ else if(ch>=′0′ && ch<=′9′) printf(″\n它是一个数字!\n″);  esle printf(″\n它是一个特殊字符!\n″);  }

运行:  请输入一个字符: A 它是一个字母! 再次运行:  请输入一个字符: + 它是一个特殊字符!