C语言第七节流程控制
流程控制
- 顺序结构:默认的流程结构。按照书写顺序执行每一条语句。
- 选择结构:对给定的条件进行判断,再根据判断结果来决定执行哪一段代码。
- 循环结构:在给定条件成立的情况下,反复执行某一段代码。

选择结构-if
简单使用
- if (表达式) 语句1;
- if(count>50) 开班; 上课;
- if(表达式) 语句1; else 语句2;
- f(count>50) 开班; else 不开班;
- if(表达式) { }
- if(count>50) {开班; 布置课室;} else {}
- { }的作用域
- if -else if-else
- if(a==0) else if (a>0) else
- 特点:只有一个括号会被执行
- 复合条件
- 上课时间的取值范围(9~12 || 14 ~17)
- 陷阱
- if(a!=0) { a不是0;} else {a是0;}
- if (a); { }
- if (a=0)
- a == 0;
- if (10) int a = 9;
习题
- 输入一个整数day代表星期几,根据day的值输出对应的星期几,比如day==1,就输出"星期一"
- 输入一个整数month代表月份,根据月份输出对应的季节。
春季:3、4、5
夏季:6、7、8
秋季:9、10、11
冬季:12、1、2
- 输入一个整数score代表分数,根据分数输出等级(A-E)(用两种方式)
A:90~100
B:80~89
C:70~79
D:60~69
E:0~60
选择结构-switch
简单使用
- switch(表达式) { case 数值1: break; … default: break;}
- 举例
int a = 10;
switch (a) {
case 0:
printf("这是一个0");
break;
case 5:
printf("这是一个5");
break;
case 10:
printf("这是一个10");
break;
default:
printf("什么也不是");
break;
}
- 简述break的作用
- 在case中定义变量
if和switch的对比
- 很多情况可以互换
- if用得比较多,比较灵活,switch只能某个单值
习题
用switch替代if实现if中的习题
循环结构-while
简单使用
- 连续printf("俯卧撑")20次;
- while(表达式) { }
- continue:输出5次休息一下
- break的使用:某次的时候停止循环
特点
只有条件成立才会执行循环体
习题
- 提示用户输入一个正整数n,计算1+2+3+…+n的和
- 提示用户输入一个正整数n,计算1-2+3-4+5-6+…+n的和
陷阱
while(条件);
循环结构-do while
- 特点:一定会执行一次循环体
- while和do while循环对比
int i=0;
while(i<0){
i++;
}
int i=0;
do{
i++;
} while(i<0);
循环结构-for
简单实用
- 运行过程
- 初始化语句等可以是多句(把printf放到for的括号中)
for循环嵌套
好友列表1
好友1
好友2
好友列表2
好友1
好友2
好友列表3
好友1
好友2
陷阱
- 死循环 for(;;);
- for循环体内部变量的作用域
- 作用域混淆
for (int i = 0; i<5; i++) int a = 10;
while循环和for循环的比较
- 可以互换
- for循环的变量可以及时回收
习题
- 提示用户输入一个正整数n,如果n5,就输出下列图形,其他n值以此类推

- 输出九九乘法表

break和continue
break
- 使用场合:switch\循环结构
- 循环嵌套下的break
continue
- 使用场合:循环结构
- 循环嵌套下的continue
内容来源:传智播客李明杰老师授课内容
C语言第七节流程控制的更多相关文章
- Go语言基础之4--流程控制
一.if else语句 1.1 基本语法1 语法1: if condition { //do something } 语法2: if condition { //do something } else ...
- 004-流程控制-C语言笔记
004-流程控制-C语言笔记 学习目标 1.[掌握]关系运算符和关系表达式 2.[掌握]逻辑运算符和逻辑表达式 3.[掌握]运算符的优先级和结合性 4.[掌握]if-else if-else结构的使用 ...
- Swift语言指南(七)--语言基础之布尔值和类型别名
原文:Swift语言指南(七)--语言基础之布尔值和类型别名 布尔值 Swift有一个基本布尔类型,叫做布尔(bool),布尔值又称逻辑值(logical),因为它只能为真(true)或假(false ...
- 网络1711班 C语言第七次作业批改总结
网络1711班 C语言第七次作业批改总结 1.本次作业评分细则 1.1 基本要求(1分) 按时交 - 有分 未交 - 0分 迟交一周以上 - 倒扣本次作业分数 抄袭 - 0分 泛泛而谈(最多七分) 1 ...
- PIC12F629帮我用C语言写个程序,控制三个LED亮灭
http://power.baidu.com/question/240873584599025684.html?entry=browse_difficult PIC12F629帮我用C语言写个程序,控 ...
- C语言第七讲,函数入门.
C语言第七讲,函数入门. 一丶了解面向过程和面向对象的区别. 为什么要先讲面向过程和面向对象的区别? 面向过程,就是什么都要自己做. 比如你要吃饭. 那么你得自己做饭. 面向对象, 面向对象就是我要 ...
- WinForm 中使用 Action 子线程对主线程 控制进行访问
/// <summary> /// 开启新线程执行 /// </summary> /// <param name="sender"></p ...
- Shell03---流程控制
目录 Shell03---流程控制 1. 流程控制语句if基本概述 2. 流程控制语句if文件比较 3. 流程控制语句if整数比较 4. 流程控制语句if字符比较 5. 流程控制语句if正则比较 6. ...
- 自动化运维工具-Ansible之5-流程控制
自动化运维工具-Ansible之5-流程控制 目录 自动化运维工具-Ansible之5-流程控制 playbook条件语句 单条件 多条件 多条件运算 示例 playbook循环语句 with_ite ...
随机推荐
- 【转】Mysql进程管理
mysql> show processlist; +----+------+-----------+------+---------+------+-------+--------------- ...
- 文本读写vs二进制读写
[文本读写vs二进制读写] 在学习C语言文件操作后,我们都会知道打开文件的函数是fopen,也知道它的第二个参数是 标志字符串.其中,如果字符串中出现'b',则表明是以打开二进制(binary)文件, ...
- 调整V7连保监平台时问题
11北京 XXX: 界面无法录入导致无法出单. 31上海 XXX: 送平台代码有问题 保费计算失败! 车险平台返回信息 0101010024_公司险种代码/平台险种代码('030006 '/'C02 ...
- utf8 和 UTF-8 的区别
只有在MySQL中可以使用“utf-8”的别名“utf8”,但是在其他地方一律使用大写“UTF-8”.
- AJAX的工作原理及其优缺点
1.什么是AJAX?AJAX全称为“Asynchronous JavaScript and XML”(异步JavaScript和XML),是一种创建交互式网页应用的网页开发技术.它使用:使用XHTML ...
- newlsip 检查磁盘分区使用情况
主要还是用df -k这个命令,然后将输出结果全部逐行解析,最后调用REST API,发送给服务器保存. 参考代码: #!/usr/bin/newlisp (set 'cur-path "/o ...
- [Mac]ios应用发布流程
准备: 苹果开发者账号 发布: Xcode-product-clean-Archive,将应用上传到https://itunesconnect.apple.com,创建一个新的app版本,填写app相 ...
- 建表的sql
1. 创建用户表 create table user( id int unsigned not null primary key auto_increment comment '自增id', user ...
- 实现带查询功能的Combox控件
前言 ComBox 还可以实现查询功能,通过设置 ComBox 控件的 AutoCompleteSource 属性和 AutoCompleteMode 属性,可以实现从 Combox 控件中查询已存在 ...
- C++成员变量、构造函数的初始化顺序 [转]
C++成员变量.构造函数的初始化顺序 一.C++成员变量初始化 1.普通的变量:一般不考虑啥效率的情况下 可以在构造函数中进行赋值.考虑一下效率的可以再构造函数的初始化列表中进行 2.static 静 ...