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

二、选择结构 - if
1. 简单使用
• if (表达式) 语句1; //直接在后面写语句,可以不用加大括号
o if(count>50) 开班; 上课;
• if(表达式) 语句1; else 语句2;
o f(count>50) 开班;
o else 不开班;
• if(表达式) { }
o if(count>50) {开班; 布置课室;}
o else {}
o { }的作用域
• if -else if-else
o if(a==0) else if (a>0) else
o 特点:只有一个括号会被执行
• 复合条件
o 上课时间的取值范围(9~12 || 14 ~17)
• 陷阱
• if(a!=0) { a不是0;} else {a是0;}
• if (a); { }
• if (a=0)
• a == 0;
• if (10) int a = 9;

• 输入一个整数score代表分数,根据分数输出等级(A-E)(用两种方式)
• A:90~100
• B:80~89
• C:70~79
• D:60~69
• E:0~60

  if (score>=90 && score<=100) { // [90, 100]
o           printf("A\n");
o       } else if (score>=80) { // [80, 89]
o           printf("B\n");
o       } else if (score>=70) { // [70, 79]
o           printf("C\n");
o       } else if (score>=60) { // [60, 69]
o           printf("D\n");
o       } else { // (-∞, 59]
o           printf("E\n");
o       }
o
o   2.性能中等
o       if (score>=90 && score<=100) { // [90, 100]
o           printf("A\n");
o       } else if (score>=80 && score<=89) { // [80, 89]
o           printf("B\n");
o       } else if (score>=70 && score<=79) { // [70, 79]
o           printf("C\n");
o       } else if (score>=60 && score<=69) { // [60, 69]
o           printf("D\n");
o       } else { // (-∞, 59]
o           printf("E\n");
o       }
o
o   3.性能最差
o       if (score>=90 && score<=100) { // [90, 100]
o           printf("A\n");
o       }
o
o       if (score>=80 && score<=89) { // [80, 89]
o           printf("B\n");
o       }
o
o       if (score>=70 && score<=79) { // [70, 79]
o           printf("C\n");
o       }
o
o       if (score>=60 && score<=69) { // [60, 69]
o           printf("D\n");
o       }
o
o       if (score<=59) { // (-∞, 59]
o           printf("E\n");
o       }

• 输入一个整数month代表月份,根据月份输出对应的季节。
• 春季:3、4、5
• 夏季:6、7、8
• 秋季:9、10、11
• 冬季:12、1、2

o   #include <stdio.h>
o
o   int main()
o   {
o       printf("输入一个整数\n");
o
o       int month;
o
o       scanf("%d",&month);
o
o       if (month>=3&&month<=5) {
o           printf("春季\n");
o       }else if(month>=6&&month<=8){
o           printf("夏季\n");
o       }else if(month>=9&&month<=11){
o           printf("秋季\n");
o       }else if(month==12||month==1||month == 2){
o           printf("冬季\n");
o       }else if(month>12 || month < 1){
o           printf("输入有误\n");
o       }
o
o       return 0;
o   }

• 输入一个整数day代表星期几,根据day的值输出对应的星期几

o   #include <stdio.h>
o
o   int main()
o   {
o       printf("输入一个整数\n");
o
o       int day;
o
o       scanf("%d",&day);
o
o       if (day == 1) {
o           printf("星期一\n");
o       }else if(day == 2){
o           printf("星期二\n");
o       }else if(day == 3){
o           printf("星期三\n");
o       }else if(day == 4){
o           printf("星期四\n");
o       }else if(day == 5){
o           printf("星期五\n");
o       }else if(day == 6){
o           printf("星期六\n");
o       }else if(day == 7){
o           printf("星期日\n");
o       }else if(day>7 || day < 1){
o           printf("输入有误\n");
o       }
o
o       return 0;
o   }

三、选择结构 switch

• 简单使用
o switch(表达式) { case 数值1: break; … default: break;}
• 举例
o int a = 10;
o switch (a) {
o case 0:
o printf(“这是一个0”);
o break;
o case 5:
o printf(“这是一个5”);
o break;
o case 10:
o printf(“这是一个10”);
o break;
o default:
o printf(“什么也不是”);
o break;
o }
• 简述break的作用:break:退出整个switch语句,如果case后面没有break,就会执行后面所有case中的语句,直到遇到break为止
• 在case中定义变量:如果要在case后面定义新的变量,必须用大括号{}包住
o switch (c) {
o case ‘+’:
o {
o int sum = a + b;
o printf(“和是%d\n”, sum);
o break;
o }
o
o case ‘-‘:
o {
o int minus = a - b;
o printf(“差是%d\n”, minus);
o break;
o }
o }
o

应用:输入一个整数score代表分数,根据分数输出等级A-E (用switch语句实现)
A:90~100
B:80~89
C:70~79
D:60~69
E:0~60

#include <stdio.h>
void main()                               // 定义一个主函数,作为程序的入口
{int score;scanf("%d/n",&score);                   // 输入一个分数switch(score/10)                        // 分数都为整数,取score/10的值{case10:case9: printf("%d:A /n",score);break;   // 当score在90-100之间时,输出等级Acase8: printf("%d:B /n",score);break;   // score/10为8时,输出等级为Bcase7: printf("%d:C /n",score);break;  // score/10为7时,输出等级为Ccase6: printf("%d:D /n",score);break;  // score/10为6时,输出等级为Ddefault: printf("%d:E /n",score);      // score/10为其他值时,输出等级为E}}

• if和switch的对比
o 很多情况可以互换
o if用得比较多,比较灵活,switch只能某个单值

四、循环结构 while

1.简单实用
• 连续printf(“俯卧撑”)20次;
• while(表达式) { }
• continue:输出5次休息一下 //直接结束这一次循环体,进入下一次循环
• break的使用:某次的时候停止循环 //直接结束整个while循环
2.特点
只有条件成立才会执行循环体

1.提示用户输入一个正整数,计算1+2+3+4……+n的和

•   #include <stdio.h>
•
•   int main()
•   {
•       // 定义变量保存用户输入的整数
•       int n = 0; // 一定要初始化
•
•       while (n <= 0)
•       {
•           // 1.提示输入
•           printf("请输入一个正整数:\n");
•
•           // 2.接收输入
•           scanf("%d", &n);
•       }

五、循环结构 do while
1. 特点:一定会执行一次循环体
2.while 和 do while的对比
while和do while循环对比
int i=0;
while(i<0){
i++;
}
int i=0;
do{
i++;
} while(i<0);

while和do-while的区别
1.很多情况下,while和do while可以互换
2.while特点:如果一开始的条件不成立,永远不会执行循环体
do while特点:不管一开始的条件是否成立,至少会执行一次循环体
3.最好使用while

六、循环结构 for
1.简单实用
运行过程
for (语句1; 条件; 语句2)
{
循环体
}

语句1:初始化语句
语句2:增量语句(执行完循环体后再执行的语句)

1.for一开始就会执行一次语句1(整个for循环只会执行一次)
2.判断条件是否成立,如果条件成立,就会执行一次循环体,然后就会执行语句2,再次判断条件是否成立

2.陷阱
• 死循环 for(;;);
• for循环体内部变量的作用域;//{}内定义的变量只能在{}内使用
• 作用域混淆
o for (int i = 0; i<5; i++) int a = 10;
3.while循环和for循环的比较
• 可以互换
• for循环的变量可以及时回收

应用: 打印图形

o   #include <stdio.h>
o
o   int main()
o   {
o
o
o       int n = 0;
o       while (n <= 0) {
o           printf("请输入一个整数\n");
o           scanf("%d",&n);
o       }
o
o
o       for (int i = n; i>0; i--) {
o           for (int a = i; a > 0; a--) {
o               printf("*");
o           }
o           printf("\n");
o       }

• 用for循环输出九九乘法表

o   #include <stdio.h>
o
o   int main()
o   {
o       int sum=0;
o       for (int i = 1; i<10; i++) {
o           for (int n = 1; n <= i; n++) {
o               sum = i * n;
o               printf("%dx%d=%d  ",i,n,sum);
o           }
o           printf("\n");
o       }
o
o       return 0;
o   }

七、break和continue
• break:
• 1.使用场合
o 1> switch语句:退出整个switch语句
o 2> 循环结构:退出整个循环语句
o * while
o * do while
o * for
• 2.注意点
o 只对最近的循环结构有效

• continue:
• 1.使用场合
o 循环结构:结束当前这次的循环体,进入下一次循环体
o * while
o * do while
o * for
• 2.注意点
o 只对最近的循环结构有效

应用:实现简单的计算器

#include <stdio.h>int main(int argc, const char * argv[]) {int num1,num2,op;float result=0.0f;printf("请输入第一个数:\n");scanf("%d",&num1);printf("请选择运算符: 0.+  1.-  2.*  3./\n");scanf("%d",&op);if (op<0 || op >3) {printf("运算不合法\n");return 0;}printf("请输入另外一个数:\n");scanf("%d",&num2);switch (op) {case 0:result = num1+num2;break;case 1:result = num1-num2;break;case 2:result = num1*num2;break;case 3:result = num1/(float)num2;}printf("%d和%d运算的结果%.2f\n",num1,num2,result);return 0;
}

学习心得:

通过本章知识的学习,了解了C语言中分支结构的类别及用法,循环结构语句在编程中起着重要的思想指导作用,能实现很多功能,对于要先做判断再选择的问题就要使用分支结构。分支结构的执行是依据一定的条件选择执行路径,而不是严格按照语句出现的物理顺序。分支结构的程序设计方法的关键在于构造合适的分支条件和分析程序流程,根据不同的程序流程选择适当的分支语句。分支结构适合于带有逻辑或关系比较等条件判断的计算,设计这类程序时往往都要先绘制其程序流程图,然后根据程序流程写出源程序,这样做把程序设计分析与语言分开,使得问题简单化,易于理解。程序流程图是根据解题分析所绘制的程序执行流程图。

iOS开发-C语言-分支结构相关推荐

  1. Android Swift iOS开发:语言与框架对比

    转载自:http://www.infoq.com/cn/articles/from-android-to-swift-ios?utm_campaign=rightbar_v2&utm_sour ...

  2. iOS开发Swift语言学习教程-欧阳坚-专题视频课程

    iOS开发Swift语言学习教程-16345人已学习 课程介绍         Swift这套视频是针对有Objective-C/iOS基础,想转成Swift开发的学习视频,视频中从Swift语法,结 ...

  3. 系列:iOS开发-C语言基础

    #系列:iOS开发-C语言基础 之前也说了iOS中的OC是扩充C的面向对象编程语言 那么无论是从什么角度来说都要首先回顾一下C的内容,虽然很多人在大学的时候都有学习过C语言,一提到谭浩强,我估计90% ...

  4. ios c语言头文件,iOS开发 -- C语言基础12(预处理指令)

    iOS开发 -- C语言基础12(预处理指令) 宏定义 预处理指令简介 1.C语言在对源程序进行编译之前,会先对一些特殊的预处理指令作解释(比如之前使用的#include文件包含指令),产生一个新的源 ...

  5. 李洪强漫谈iOS开发[C语言-038]-if else if语句

    李洪强漫谈iOS开发[C语言-038]-if else if语句

  6. c语言用分支结构判断最大字符,第3章C语言 分支结构PPT课件.ppt

    <第3章C语言 分支结构PPT课件.ppt>由会员分享,可在线阅读,更多相关<第3章C语言 分支结构PPT课件.ppt(36页珍藏版)>请在人人文库网上搜索. 1.第三章 分支 ...

  7. ios开发语言在c语言的基础上,iOS开发 - C语言基础4(基本语句和运算符) - 猫扑天空...

    iOS开发 - C语言基础4(基本语句和运算符) 基本语句 C语言的基本语句跟Java中的差不多,所以,这里只是简单地提一下 循环语句(do while.while.for) 条件语句(if .if- ...

  8. c语言分支结构程序设计课件,C语言 分支结构程序设计.ppt

    C语言 分支结构程序设计 第2章 分支结构程序设计 本章要点 C语言中有哪些关系运算和逻辑运算? 关系运算和逻辑运算的优先级如何? 如何用IF语句构成分支结构? 如何用SWITCH语句构成多分支结构? ...

  9. iOS开发笔记 - 语言篇之Swift

     2014年的苹果全球开发者大会(WWDC),当Craig Federighi向全世界宣布"We have new programming language"(我们有了新的编程语言 ...

最新文章

  1. 千万级在线推送系统架构解析
  2. php根据循环条件切换图片,thinkphp 循环显示图片问题!!!~~~~
  3. SSI 社会信号识别 —— 实时分析和识别人类行为
  4. mysql权限清理_mysql清理用户权限
  5. matlab平稳随机过程的功率谱密度,平稳随机过程的功率谱密度
  6. NumPy Beginner's Guide 2e 带注释源码 二、NumPy 基础入门
  7. 【Sentry】为什么Cloudera要创建Hadoop安全组件Sentry?
  8. 论文阅读:Siam-RPN
  9. C#的目录与文件操作
  10. 微服务架构的链路追踪和故障快速排查zipkin(微服务治理)
  11. 计算机指法游戏警察抓小偷,警察抓小偷打字游戏游戏
  12. python学习第11天(2)
  13. 【Tools】haneWIN NFS Server 1.2.10 注册机(亲测有效)
  14. Desktop Aquarium Wallpaper‪s for mac(高清水族馆屏保)
  15. 半导体器件物理【3】半导体与IC工艺
  16. postman设置成中文
  17. seo具体怎么优化-优化SEO的方法
  18. 图机器学习——2.1 节点嵌入:基于随机游走
  19. 基于LATTICE ECP3 FPGA的 Nano_Viewer设计(开源)
  20. vue项目创建之后 ESLint导致第一行毛毛虫

热门文章

  1. 【学术相关】写文献综述的28个要点
  2. 爬取数据并写入MySQL数据库
  3. Bugku:加密 聪明的小羊
  4. 2020年最新世界地图_一点都不能错!快收藏,2020年新版地图来了!
  5. python ndarray转换为array_python ndarray与pandas series相互转换,ndarray与dataframe相互转换...
  6. .dll 文件编写和使用
  7. @input 与@output 的初步理解
  8. 图解浏览器渲染原理及流程
  9. 计算机控制系统课程设计ad转换,计算机a/d转换器与系统的连接及举例
  10. InDesign 教程:如何向母版页添加内容?