【iOS开发基础】【C语言】03 - 流程控制

一、流程控制结构

  (1)顺序结构:按照书写顺序执行每一条语句。

  (2)选择结构:对给定的条件进行判断,根据判断结果来决定执行哪一段代码。

  (3)循环结构:在给定条件成立的情况下,反复执行某一段代码。

二、选择结构 - if  

  (一)if简单使用

    1) 第一种结构:

      如果条件为真,就执行后面的语句,否则不执行。

      if(条件)

      {

        语句1;

        语句2;

        ……

      }

    2) 第二种结构:

      如果条件成立就执行语句1,否则执行语句2。

      if(条件)

      {

        语句1;

      }

      else

      {

        语句2;

      }

    3) 第三种结构:

      先判断条件1,若成立则执行语句1,其它不执行;若条件1不成立,则检查条件2……

      【注意】如果条件3成立,则说明前面的都不成立。所有的语句块只有一个会被执行。

      if(条件1)

      {

        语句1;

      }

      else if(条件2)

      {

        语句2;

      }

      else (条件3)

      {

        语句3;

      }

    4) 第四种结构:

      在这种情况下,当条件成立,只执行语句1,语句2不属于次条件结构,但不推荐此种写法。

      if(条件)

      语句1;

      语句2;

  (二)if使用注意

    ①.推荐使用if(0==a)这种写法。

    ②. 注意赋值运算符,不要把==写成是=。

    ③. If(条件)后面不要加分号。

    ④. 注意作用域的问题,如果要在if后面定义新的变量,则一定要使用大括号。

  (三)if练习   

    输入一个整数score代表分数,根据分数输出等级(A-E)

    A:90~100  B:80~89  C:70~79  D:60~69  E:0~60

 1 #include<stdio.h>
 2
 3 int main(){
 4
 5     //定义变量存储分数值
 6
 7     int score;
 8
 9     //提示输入
10
11     printf("请输入分值:\n");
12
13     //接受输入
14
15     scanf("%d",&score);
16
17     //判断等级
18
19     if(score>=90&&score<=100)
20
21         printf("A\n");
22
23     else if(score>=80)
24
25         printf("B\n");
26
27     else if(score>=70)
28
29         printf("C\n");
30
31     else if(score>=60)
32
33         printf("D\n");
34
35     else
36
37         printf("E\n");
38
39     return 0;
40
41 }    

三、选择结构 - switch

  (一)switch结构

    switch(值) //通常是变量

    {

      case数值1:

        语句1;

        break;

      case数值2:

        语句2;

        break;

      case数值3:

        语句3;

        break;

      default :

        语句4;

        break;

    }

    解说:该结构把数值与数值1进行比较,若相等,则执行后面的所有语句,直到遇见break语句跳出整个循环,若前面的条件都不满足,则最终会执行default后面的语句。如果不写break语句,则后面的语句会接连执行,直到遇到break语句或者是全部语句执行完毕,只要前面的条件成立,则后面的判断就直接被忽略。

  (二)switch使用注意

    char c=‘A’;

    switch(c)

    {

      case‘A’:

        语句1;

        break;

      case 65://不能这样写,因为‘A’的ASCII值就是65,会报错

        语句2;

        break;

      case数值3:

        int a=10;

        //a的作用域不明确报错,c语言检查变量的作用域根据{}决定,这里可以加{}

        break;

      default :

        语句4;

        break;

    }

    注意:如果要在case后面的语句中定义变量,则必须使用大括号包住。

  (三)switch练习

    输入一个整数seore代表分数,根据分数输出等级(A-E)。

    A 90-100  B 80-89  C 70-79  D 60-69  E 0-60 

 1 #include<stdio.h>
 2
 3 int main()
 4 {
 5     // 定义一个变量score,用来存储用户输入的分数
 6     int score ;
 7
 8     printf("请输入你的分数:");
 9
10     scanf("%d",&score);
11
12     //用switch语句判断用户输入的分数是什么等级
13     switch (score/10) {
14         case 10://100分
15         case 9://90~99分
16             printf("等级是 A \n");
17             break;
18         case 8://80~89分
19             printf("等级是 B \n");
20             break;
21         case 7://70~79分
22             printf("等级是 C \n");
23             break;
24         case 6://60~69分
25             printf("等级是 D \n");
26             break;
27         default://0~59分
28             printf("等级是 E \n");
29             break;
30     }
31     return 0;
32 }
33
34 代码

  【对比】if与switch:

  1. if语句能够完成的功能,switch有时并不能够完成,如判断if(a>100)

  2. 在有些情况下,if语句和switch语句可以互换

  3. switch语句能完成的功能,if语句都可以完成

四、循环结构-while

  (一)while结构

    while(条件)

    {

      语句;

    }

    解说:判断条件是否成立,成立则执行(判断条件 -> 执行代码块 -> 判断条件 -> 执行代码块……)

      1.首先确定循环执行的操作,2.在确定约束条件,即需要循环多少次,3.定义一个变量来记录循环的次数。

    提示:在while循环体内使用if...break(跳出整个循环)或if...continue语句(跳出本次循环,继续下一次循环判断)。

    while结构的运行原理:

      ①. 如果一开始条件不成立,则永远不会执行循环体。

      ②. 如果条件成立,则执行一次循环体,执行完毕后再次判断条件是否成立。

      ③. break:直接退出整个循环。

      ④. continue:结束当前循环体,进行下一轮循环判断。

  (二)使用注意

    1) while(1){.....}是一个死循环

    2) while(a<10);{...}在条件后面加逗号表示循环体是一个空语句,而非{}部分

    3) while条件语句后推荐使用{},否则只有第一条语句时循环体

    4) 最简单的死循环  while(1);//永远执行空语句,让程序崩溃

  (三)while练习

    编程实现,提示输入一个正整数n,计算1+2+3+...n的值。

 1 #include<stdio.h>
 2
 3 int main(){
 4
 5     //定义变量保存用户输入的整数
 6
 7     int n;
 8
 9     while(n<=0){
10
11         //提示输入
12
13         printf("请输入一个正整数:\n");
14
15         //接受输入
16
17         scanf("%d",&n);
18
19     }
20
21     int sum=0;
22
23     int number=0;//默认被加的数值
24
25     while(number<n){
26
27         number++;
28
29         sum=sum+number;
30
31     }
32
33     printf("计算结果为:%d\n",sum);
34
35     return 0;
36
37 }

五、循环结构-do while

  Do

  {

    语句

  }while(条件)

  特点:do while循环至少会执行一次循环体

六、循环结构-for

  (一)基本使用

    for(语句1,条件,语句2)

    {

      循环体

    }

    语句1:一般为初始化语句

    语句2:一般为增量语句(执行完循环体后再执行的语句)

    for循环原理:

      1) for循环一开始就会执行语句1(整个for循环只会执行一次)

      2) 判断条件是否成立,若成立,则执行一次循环体,然后执行语句2,再次判断条件是否成立,若条件不成立则结束循环

      3) 顺序为:(语句1 -> 判断条件 -> 循环体 -> 语句2 -> 判断条件 -> 循环体……)

    【对比】for和while:

      在性能上,for循环稍胜一筹,因为while循环只能使用外部的变量,而for循环可以对变量进行及时回收。

  (二)for使用注意

    ①. 不要随便在for语句后面写上分号,如for();{....}

    ②. 定义变量的作用域不明确错误

      for(int i = 0;i < 5;i++)

      int a = 10; //编译器报错,变量作用域不明确

    ③. for语句中最简单的死循环for(;;);

    ④. 需要注意变量定义的作用域

      int a = 10;

      for(int i = 0,int a = 9;i < 5;i++)

      {

        int a = 10;

        printf(“a = %d\n”,a);//这里打印的a的值是多少?

      }

  (三)for循环嵌套

    用以输出特定格式的内容,如QQ好友列表等,提升可扩展性。

    for(in i = 0;i < 5;i++)

    {

      //外面的循环控制行数

      printf(“好友列表%d\n”,i);

      //内部的循环控制列数

      for(int j = 1;j< = 6;j++)

      {

        printf(“好友%d\n”,j);

      }

    }

  (四)for练习

    使用for循环输出九九乘法表。//先控制行数,在控制列数

    代码:

 1 #include<stdio.h>
 2
 3 int main()
 4
 5 {
 6
 7     for(int i=1;i<=9;i++)
 8
 9     {
10
11         for(int j=1;j<=i;j++)
12
13         {
14
15             printf("%dx%d=%d\t",i,j,i*j);
16
17         }
18
19         printf("\n");
20
21     }
22
23     return 0;
24
25 }   
时间: 2024-10-25 05:43:44

【iOS开发基础】【C语言】03 - 流程控制的相关文章

iOS开发Swift-元组类型和流程控制

—.元组类型 1.什么是元组类型 元组类型由 N个 任意类型的数据组成(N >= 0),组成元组类型的数据可以称为“元素” 示例: let position = (x : 10.5, y : 20)  // position有2个元素,x.y是元素的名称 let person = (name : "jack")  // person只有name一个元素 let data = ()  // 空的元组 2.元素的访问 var position = (x : 10.5, y : 20)

iOS开发系列--C语言之基础知识

概览 当前移动开发的趋势已经势不可挡,这个系列希望浅谈一下个人对IOS开发的一些见解,这个IOS系列计划从几个角度去说IOS开发: C语言 OC基础 IOS开发(iphone/ipad) Swift 这么看下去还有大量的内容需要持续补充,但是今天我们从最基础的C语言开始,C语言部分我将分成几个章节去说,今天我们简单看一下C的一些基础知识,更高级的内容我将放到后面的文章中. 今天基础知识分为以下几点内容(注意:循环.条件语句在此不再赘述): Hello World 运行过程 数据类型 运算符 常用

C语言基础之函数和流程控制

函数和流程控制也是每个编程语言的基本概念,函数是划分模块的最小单位,良好的函数规划能直接提升软件的质量,C语言的流程控制主要由以下几个语句组成,条件分支语句.选择语句.循环语句.goto语句.return语句等. 函数的定义 一个函数包含返回值.函数名和参数列表,如下定义了一个返回值为 int 函数名为show拥有一个int类型参数的函数 int show(int param) {     printf("这是一个名为show的函数");     return 0; } 再来定义个没有

iOS开发-基础面试题(一) 分类: 面试题

iOS开发-基础面试题(一) 1.Difference between shallow copy and deep copy??浅复制和深复制的区别?? 答:浅层复制:只复制指向对象的指针,而不复制引用对象本身.?深层复制:复制引用对象本身.?意思就是说我有个A对象,复制一份后得到A_copy对象后,对于浅复制来说,A和A_copy指向的是同一个内存资源,复制的只不过是是一个指针,对象本身资源?还是只有一份,那如果我们对A_copy执行了修改操作,那么发现A引用的对象同样被修改,这其实违背了我们

iOS开发基础知识--碎片5

iOS开发基础知识--碎片5  二十三:addSubview和insertSubview 区别 addSubview 是将view加到所有层的最顶层 相当于将insertSubview的atIndex参数设置成view.subviews count 即 [view addSubview:oneview] == [view insertSubview:oneview atIndex:view.subviews count] addSubview是加到最后 insertSubview是加到指定的位置

IOS开发基础环境搭建

一.目的 本文的目的是windows下IOS开发基础环境搭建做了对应的介绍,大家可根据文档步骤进行mac环境部署: 二.安装虚拟机 下载虚拟机安装文件绿色版,点击如下文件安装 获取安装包:          百度网盘:链接:http://pan.baidu.com/s/1c28EkpE 密码:93tl 解压后如下,点击如下脚本进行安装:按提示进行: 服务配置(按需配置): 这里仅限配置网络功能即可:选择1 回车-选择桥接模式 选择2启用桥接服务 三.安装macos虚拟机 注意:查看本机cup类型

iOS开发基础知识--碎片21

iOS开发基础知识--碎片21  1:[UIScreen mainScreen].scale知识点 当屏幕分别为640x940时[[UIScreen mainScreen] scale]=2.0 当屏幕分别为320x480时[[UIScreen mainScreen] scale]=1.0 2:如何正确的绘制1像素的线 #define SINGLE_LINE_WIDTH (1 / [UIScreen mainScreen].scale) #define SINGLE_LINE_ADJUST_OF

iOS开发基础知识--碎片6

iOS开发基础知识--碎片6  三十三:IOS多视图跳转方法 第一种: 跳转:[self presentModalViewController:control animated:YES]; 返回:[self dismissModalViewControllerAnimated:YES]; 第二种: 跳转:[self.navigationController pushViewController:subTableViewController animated:YES]; 返回:[self.navi

iOS开发基础知识--碎片13

 iOS开发基础知识--碎片13 1:运行程序报the file couldn't be opened because you don't have permission to view it 解决办法:项目—>targets->build settings->build options->changed the value of the "Compiler for C/C++/Objective-C" to Default Compiler. 2:百度地图引用

iOS开发基础知识--碎片12

iOS开发基础知识--碎片12 1:Delegate运用 .h #import <UIKit/UIKit.h> @protocol FilterHeaderViewDelegate <NSObject> @required -(void)filterHeaderViewMoreBtnClicked:(id)sender; @end extern float CYLFilterHeaderViewHeigt; @interface FilterHeaderView : UIColle