上海交通大学:《C程序与算法设计》课程教学资源(课件讲稿)Lecture 05 C语言语句

Lecture5一C语句 绳伟光 微纳电子学系 上海交通大学 2017-03-07 1/68
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Lecture 5 — C 语句 绳伟光 微纳电子学系 上海交通大学 2017-03-07 1 / 68

提纲 选择语句(Selection Statements) 。if语句 o switch语句 迭代语句 o while语句 。do语句 ●for语句 逗号运算符 跳出循环语句 空语句 2/68
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 提纲 1 选择语句 (Selection Statements) if 语句 switch 语句 2 迭代语句 while 语句 do 语句 for 语句 逗号运算符 跳出循环语句 空语句 2 / 68

提纲 选择语句(Selection Statements) ●if语句 ●switch语句 迭代语句 o while语句 odo语句 。for语句 。逗号运算符 。跳出循环语句 ●空语句 3/68
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 提纲 1 选择语句 (Selection Statements) if 语句 switch 语句 2 迭代语句 while 语句 do 语句 for 语句 逗号运算符 跳出循环语句 空语句 3 / 68

Statements 。我们已经接触过return语句和表达式语句 。余下的C语句可以分为 ●选择语句(Selection statements):if and switch 。迭代语句(Iteration statements):while,do,for ●跳转语句(Jump statements.:break,continue,goto(re- turn也在此类中) ●其它语句 ●复合语句(Compound statement) o空语句(Null statement) 4/68
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Statements 我们已经接触过 return 语句和表达式语句 余下的 C 语句可以分为 选择语句 (Selection statements): if and switch 迭代语句 (Iteration statements): while, do, for 跳转语句 (Jump statements): break, continue, goto (return 也在此类中) 其它语句 复合语句 (Compound statement) 空语句 (Null statement) 4 / 68

if语句 对于==(equality)和=(assignment)的混淆与误用是最常 见的C编程错误 if (i==0).../tests whether i is equal to 0 if (i=0).../assigns o to i,then tests whether the result is nonzero if (0 =n).../test the opposite condition (i is outside the range) 5/68
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . if 语句 对于 == (equality) 和 = (assignment) 的混淆与误用是最常 见的 C 编程错误 if (i == 0) ... / / tests whether i i s equal to 0 if (i = 0) ... / / assigns 0 to i , then tests whether the re sul t i s nonzero if (0 = n) ... / / test the opposite condition ( i i s outside the range) 5 / 68

复合语句 。前面的if条件后面只有一条语句:if(expression)state- ment ·为了使if可以控制多条语句,可以使用复合语句(compound statement) 。复合语句的形式为:{statements} ·在一系列语句外面包围花括号,使得编译器将这些语句视为 一条单一的语句 6/68
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 复合语句 前面的 if 条件后面只有一条语句:if ( expression ) statement 为了使 if 可以控制多条语句,可以使用复合语句 (compound statement) 复合语句的形式为:{ statements } 在一系列语句外面包围花括号,使得编译器将这些语句视为 一条单一的语句 6 / 68

复合语句示例 o line num 0;page num++; ·更常见的做法是将复合语句中的子语句放置在多行: { line num =0; page_num++; } ·花括号内的每条语句都要以分号结尾,但复合语句本身的花 括号后面不需要分号 ●完整示例: if (line num =MAX_LINES){ line num 0; page num++; C语法要求一条单一语句的地方,都可以放置复合语句! 7L6
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 复合语句示例 { line_num = 0; page_num++; } 更常见的做法是将复合语句中的子语句放置在多行: { line_num = 0; page_num++; } 花括号内的每条语句都要以分号结尾,但复合语句本身的花 括号后面不需要分号 完整示例: if (line_num == MAX_LINES) { line_num = 0; page_num++; } C 语法要求一条单一语句的地方,都可以放置复合语句! 7 / 68

else子句 。if语句可能包含else分支,格式为: if expression statementl else statement2 ●statement2会在expression的值为0时执行 if (i j) max i; else max j; ·如果语句足够短,可以写成如下形式: if (i>j)max i; else max j; 8/68
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . else 子句 if 语句可能包含 else 分支,格式为: if ( expression ) statement1 else statement2 statement2 会在 expression 的值为 0 时执行 if (i > j) max = i; else max = j; 如果语句足够短,可以写成如下形式: if (i > j) max = i; else max = j; 8 / 68

嵌套if-else语句 if-else语句嵌套的情况也很常见,书写时同一层的if-else最好 上下对齐,内层的if-else最好向里缩进,以便程序更易读懂! if (i>j) if (i>k) max i; else max k; else if (i>k) max =j; else max k; 日y 9/68
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 嵌套 if-else 语句 if-else 语句嵌套的情况也很常见,书写时同一层的 if-else 最好 上下对齐,内层的 if-else 最好向里缩进,以便程序更易读懂! if (i > j) if (i > k) max = i; else max = k; else if (j > k) max = j; else max = k; 9 / 68

用{}使if-else语句更清晰 为了程序更清晰,可以加入{}将子句包围起来形成分组! if (i>j){ if (i>k) max i; else max k; }else { if (j>k) max j; else max k; } 10/68
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 用 {} 使 if-else 语句更清晰 为了程序更清晰,可以加入 {} 将子句包围起来形成分组! if (i > j) { if (i > k) max = i; else max = k; } else { if (j > k) max = j; else max = k; } 10 / 68
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 上海交通大学:《C程序与算法设计》课程教学资源(课件讲稿)Lecture 03 C语言数据类型.pdf
- 上海交通大学:《C程序与算法设计》课程教学资源(课件讲稿)Lecture 02 C语言简介.pdf
- 上海交通大学:《C程序与算法设计》课程教学资源(课件讲稿)Lecture 15 输入输出.pdf
- 上海交通大学:《C程序与算法设计》课程教学资源(课件讲稿)Lecture 14 内存检测、剖面分析.pdf
- 上海交通大学:《C程序与算法设计》课程教学资源(课件讲稿)Lecture 13 高级指针.pdf
- 上海交通大学:《C程序与算法设计》课程教学资源(课件讲稿)Lecture 12 结构、联合与枚举.pdf
- 上海交通大学:《C程序与算法设计》课程教学资源(课件讲稿)Lecture 11 字符串.pdf
- 上海交通大学:《C程序与算法设计》课程教学资源(课件讲稿)Lecture 10 C程序调试.pdf
- 上海交通大学:《C程序与算法设计》课程教学资源(课件讲稿)Lecture 01 课程简介及编程基础(绳伟光).pdf
- 机械工业出版社:计算机科学丛书《计算机组成与设计:硬件、软件接口》电子教材(中文第4版).pdf
- 《计算机系统结构》课程教学资源(电子书籍)《Computer Systems》A Programmer's Perspective(Randal E. Bryant、David R. O'Hallaron,THIRD EDITION).pdf
- 《计算机系统结构》课程教学资源(电子书籍)《Computer Organization and Design》THE HARDWARE / SOFTWARE INTERFACE(DAVID A. PATTERSON JOHN L. HENNESSY,Fourth Edtion,彩色版).pdf
- 《中文信息学报》:中文组织机构名称与简称的识别.pdf
- 上海交通大学:《C++程序设计与实践》课程教学资源(讲义)方波生成器项目报告书.doc
- 上海交通大学:《C++程序设计与实践》课程教学资源(讲稿)第8讲 Windows应用程序设计.pdf
- 上海交通大学:《C++程序设计与实践》课程教学资源(讲稿)第7讲 C++类(2/2).pdf
- 上海交通大学:《C++程序设计与实践》课程教学资源(讲稿)第6讲 C++类(1/2).pdf
- 上海交通大学:《C++程序设计与实践》课程教学资源(讲稿)第5讲 指针与引用.pdf
- 上海交通大学:《C++程序设计与实践》课程教学资源(讲稿)第4讲 数组与结构.pdf
- 上海交通大学:《C++程序设计与实践》课程教学资源(讲稿)第3讲 函数与结构化程序设计.pdf
- 上海交通大学:《C程序与算法设计》课程教学资源(课件讲稿)Lecture 06 C语言数组.pdf
- 上海交通大学:《C程序与算法设计》课程教学资源(课件讲稿)Lecture 07 函数.pdf
- 上海交通大学:《C程序与算法设计》课程教学资源(课件讲稿)Lecture 08 指针.pdf
- 上海交通大学:《C程序与算法设计》课程教学资源(课件讲稿)Lecture 09 C程序组织.pdf
- 上海交通大学:《C程序与算法设计》课程教学资源(课件讲稿)Lecture 01 算法设计与分析基础.pdf
- 上海交通大学:《C程序与算法设计》课程教学资源(课件讲稿)Lecture 01 Greedy and Dynamic Programming.pptx
- 上海交通大学:《C程序与算法设计》课程教学资源(课件讲稿)Lecture 02 Divide and Conquer.pptx
- 上海交通大学:《C程序与算法设计》课程教学资源(课件讲稿)Lecture 04 C语言运算符与表达式.pdf
- 《C程序与算法设计》课程教学资源(学习资料)快乐的Linux命令行.pdf
- 上海交通大学:《ROS机器人操作系统基础与实战》课程教学资源(实验指导书)01 ROS系统安装.doc
- 上海交通大学:《ROS机器人操作系统基础与实战》课程教学资源(实验指导书)02 ROS基本元素实验(一).doc
- 上海交通大学:《ROS机器人操作系统基础与实战》课程教学资源(实验指导书)03 ROS基本元素实验(二).doc
- 上海交通大学:《ROS机器人操作系统基础与实战》课程教学资源(实验指导书)04 调试和可视化.doc
- 上海交通大学:《ROS机器人操作系统基础与实战》课程教学资源(实验指导书)05 外部设备的使用.doc
- 上海交通大学:《ROS机器人操作系统基础与实战》课程教学资源(实验指导书)06 机器视觉.doc
- 上海交通大学:《ROS机器人操作系统基础与实战》课程教学资源(实验指导书)07 机器人建模与仿真.doc
- 上海交通大学:《ROS机器人操作系统基础与实战》课程教学资源(实验指导书)08 机器人导航包.doc
- 上海交通大学:《ROS机器人操作系统基础与实战》课程教学资源(实验指导书)09 机械臂规划Moveit.doc
- 《并行与分布式程序设计》课程教学参考书:CUDA C PROGRAMMING(CUDA编程指南4.0中文版).pdf
- 《并行与分布式程序设计》课程教学参考书:NVIDIA《CUDA C PROGRAMMING GUIDE》(Design Guide,CHANGES FROM VERSION 9.0).pdf