热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

iOS开发入门?C语言(分支结构+循环结构)

分支结构:if语句:if(条件表达式){语句;}这里至少有一个代码会被执行if(条件表达式){语句;}else{语句;}if(条件表达式1){语句;.}el
分支结构:

if 语句:

  1. 第一种:如果条件表达式成立就执行小括号后面大括号中的语句

if(条件表达式){

    语句;

    ...

  1. 第二种:如果条件表达式成立就执行if后面小括号后面大括号中的语句,否则就执行else后面大括号中语句

         这里至少有一个代码会被执行

if(条件表达式){ 

    语句;

    ...

}else{

    语句;

    ...

}

  1. 第三种:

if(条件表达式1){

    语句;

    ....

}else if(条件表达式2){

    语句;

    ....

}else if(条件表达式3){

    语句;

    ....

}

....

else{

    语句;

    ....

}

特点:

  • 这么多代码块中最多只有一个代码块会被执行
  • 当程序执行条件表达式3时候,说明其前面的所有表达式都不成立
  • 如果if语句中有else 那么必有一个代码块会被执行到

 if语句的特点:

  • 都是if开头
  • 可以有任意个else if
  • 最多只能有一个else语句
  • 如果if语句后面只有一条语句,那么if后面的大括号是可以省略的(通常开发也不这么干)

 

if嵌套:if语句内部可以嵌套其他if语句

总结: if语句也是语句,只要能够写语句的地方都可以写if语句

if(条件表达方式){

    语句;

    ...

    if(条件表达式){

        语句;

        ...

    }

    语句;

    ....

}

 

省略大括号的if语句:当if后面只有一条语句的时候,那么if后面的大括号可以省略

 

 switch语句: 

技术分享

1. 表达式

表达式计算的结果一定是整型值(short,int,long,char字符是特殊的整型),不能是浮点型,也不能是字符串。

2. case

1) 必须是常量,不能是变量

2) 一个case只能对象一个常量值

3) 常量值必须是整型

4)case后的值不可以重复(每个case值不能重复)

5)每个case后面可以跟0~n多条语句

3. default

  • 可以有,也可以没有,也可以随便放
  • default并不一定非得放在最后一个分支,也可以放中间或前面。一般情况下,都放在最后。
  • 无论default写到什么地方, 它都会最后执行(只有前面所有的case都不满足的情况才会执行)只要某一个case满足, 那么后面所有的case和default都会失效。

 

注意点:

  • case 后面的常量不可以重复
  • break 作用:结束switch语句
  • switch 语句只有遇到break 或者 switch后面大括号才会结束
  • 当switch与某一个case匹配了,那么后面的所有case都失效了
  • case 后面只能一个常量或者常量表达式
  • switch 后面的小号中只能是整形表达式

/*

 case 1:

 int a = 2;

 break;

 */

// 如果在case中定义了新的变量,必须用大括号{}包住

case 0:

{

    int a = 2;

    break;

}

 

switch (month) {

    case 12:

    case 1:

    case 2:

        printf("冬季\n");

        break;

    case 3:

    case 4:

    case 5:

        printf("春季\n");

        break;

    case 6:

    case 7:

    case 8:

        printf("夏季\n");

        break;

    case 9:

    case 10:

    case 11:

        printf("秋季\n");

        break;

    default:

        printf("不要放弃治疗\n");

        break;

}

 

/*

  1、当某个变量只有几个固定的取值时候,使用switch会更加简洁

  2、如果是区间[-无穷,1] [10,+无穷] 就用if  if(x <= 1 || x >= 10)

 */

 

案例:

/**  加减乘除计算器 (提示:录入1+2输出1+2=3*/

int test() {   

    int num1,num2; //定义两个变量,表示操作数

    char operator; //定义一个char类型变量,表示要进行操作

    printf("请按照如下格式录入(1 + 1)\n"); //提示用录入

    scanf("%d %c %d",&num1,&operator,&num2);

    int result;

    switch (operator) {

        case ‘+‘:

            result = num1 + num2;

            break;

        case ‘-‘:

            result = num1 - num2;

            break;

        case ‘*‘:

            result = num1 * num2;

            break;

        case ‘/‘:

            if (num2 == 0) {

                printf("除数不能为零\n");

                return 0;

            }

            result = num1 / num2;

            break;

        default:

            printf("你录入格式错误\n");

            break;

    }

    printf("%d %c %d = %d\n",num1,operator,num2,result);

    return 0;

}

 

循环结构:

  循环是一次又一次的执行相同的代码块

  循环:用来处理一些重复执行的操作

 

写循环的具体步骤:

 1、确定需要重复执行的操作

 2、确定循环终止的条件:

    1) 在循环开始之前,需要做点事(定义一个循环控制变量并将其初始化)

    2) 确定循环约束条件

    3) 在每一次循环结束的时候或在循环中,要去改变循环控制变量的值,让它不断接近约束条件

 

 

最简单的死循环

 

  • while (1);
  • for(;;); // for(;1;); 注意:for循环中的条件表达式默认为真

  技术分享

do whilewhile的区别:

    while如果条件表达式一开始就不满足, 那么循环体永远不会被执行

             

    do while如果条件表达式一开始就不满足, 同样会执行一次循环体

    也就是说: 无论条件表达式是否满足, do while始终会执行一次循环体

 

 

iOS开发入门 ? C语言(分支结构 + 循环结构)


推荐阅读
  • 《数据结构》学习笔记3——串匹配算法性能评估
    本文主要讨论串匹配算法的性能评估,包括模式匹配、字符种类数量、算法复杂度等内容。通过借助C++中的头文件和库,可以实现对串的匹配操作。其中蛮力算法的复杂度为O(m*n),通过随机取出长度为m的子串作为模式P,在文本T中进行匹配,统计平均复杂度。对于成功和失败的匹配分别进行测试,分析其平均复杂度。详情请参考相关学习资源。 ... [详细]
  • 动态规划算法的基本步骤及最长递增子序列问题详解
    本文详细介绍了动态规划算法的基本步骤,包括划分阶段、选择状态、决策和状态转移方程,并以最长递增子序列问题为例进行了详细解析。动态规划算法的有效性依赖于问题本身所具有的最优子结构性质和子问题重叠性质。通过将子问题的解保存在一个表中,在以后尽可能多地利用这些子问题的解,从而提高算法的效率。 ... [详细]
  • 本文介绍了使用Java实现大数乘法的分治算法,包括输入数据的处理、普通大数乘法的结果和Karatsuba大数乘法的结果。通过改变long类型可以适应不同范围的大数乘法计算。 ... [详细]
  • HDU 2372 El Dorado(DP)的最长上升子序列长度求解方法
    本文介绍了解决HDU 2372 El Dorado问题的一种动态规划方法,通过循环k的方式求解最长上升子序列的长度。具体实现过程包括初始化dp数组、读取数列、计算最长上升子序列长度等步骤。 ... [详细]
  • 本文讨论了如何优化解决hdu 1003 java题目的动态规划方法,通过分析加法规则和最大和的性质,提出了一种优化的思路。具体方法是,当从1加到n为负时,即sum(1,n)sum(n,s),可以继续加法计算。同时,还考虑了两种特殊情况:都是负数的情况和有0的情况。最后,通过使用Scanner类来获取输入数据。 ... [详细]
  • 本文介绍了OC学习笔记中的@property和@synthesize,包括属性的定义和合成的使用方法。通过示例代码详细讲解了@property和@synthesize的作用和用法。 ... [详细]
  • 1,关于死锁的理解死锁,我们可以简单的理解为是两个线程同时使用同一资源,两个线程又得不到相应的资源而造成永无相互等待的情况。 2,模拟死锁背景介绍:我们创建一个朋友 ... [详细]
  • 本文内容为asp.net微信公众平台开发的目录汇总,包括数据库设计、多层架构框架搭建和入口实现、微信消息封装及反射赋值、关注事件、用户记录、回复文本消息、图文消息、服务搭建(接入)、自定义菜单等。同时提供了示例代码和相关的后台管理功能。内容涵盖了多个方面,适合综合运用。 ... [详细]
  • VScode格式化文档换行或不换行的设置方法
    本文介绍了在VScode中设置格式化文档换行或不换行的方法,包括使用插件和修改settings.json文件的内容。详细步骤为:找到settings.json文件,将其中的代码替换为指定的代码。 ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • 基于layUI的图片上传前预览功能的2种实现方式
    本文介绍了基于layUI的图片上传前预览功能的两种实现方式:一种是使用blob+FileReader,另一种是使用layUI自带的参数。通过选择文件后点击文件名,在页面中间弹窗内预览图片。其中,layUI自带的参数实现了图片预览功能。该功能依赖于layUI的上传模块,并使用了blob和FileReader来读取本地文件并获取图像的base64编码。点击文件名时会执行See()函数。摘要长度为169字。 ... [详细]
  • 本文讲述了作者通过点火测试男友的性格和承受能力,以考验婚姻问题。作者故意不安慰男友并再次点火,观察他的反应。这个行为是善意的玩人,旨在了解男友的性格和避免婚姻问题。 ... [详细]
  • 安卓select模态框样式改变_微软Office风格的多端(Web、安卓、iOS)组件库——Fabric UI...
    介绍FabricUI是微软开源的一套Office风格的多端组件库,共有三套针对性的组件,分别适用于web、android以及iOS,Fab ... [详细]
  • 本文详细介绍了Linux中进程控制块PCBtask_struct结构体的结构和作用,包括进程状态、进程号、待处理信号、进程地址空间、调度标志、锁深度、基本时间片、调度策略以及内存管理信息等方面的内容。阅读本文可以更加深入地了解Linux进程管理的原理和机制。 ... [详细]
  • Java验证码——kaptcha的使用配置及样式
    本文介绍了如何使用kaptcha库来实现Java验证码的配置和样式设置,包括pom.xml的依赖配置和web.xml中servlet的配置。 ... [详细]
author-avatar
濛宝贝儿
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有