iOS笔记:第四篇 C语言 流程控制

2024-09-02 12:08

本文主要是介绍iOS笔记:第四篇 C语言 流程控制,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!


第一节  switch-case结构

一、switch-case结构

1. switch-case结构选择结构.

2. 语法:

     switch(表达式)

     {

        case 1:

             执行代码;

             break;

        case 2:

             执行代码;

             break;

        case 3:

             执行代码;

             break;

        default:

             执行代码;

             break;

     }

 3. 执行步骤

    先计算switch后的表达式的结果.然后将这个结果依次的从上到下的和每1case块后的值做相等比较。

    只要有1case后的值和表达式的结果相等就会执行该case块中的代码然后结束整个switch结果往下执行.如果不相等再判断下1.

    如果所有的值都不和表达式的结果相等那么就执行default中的代码.

4. ifswitch的区别.

    a. switch-case结构只能做等值判断,判断switch后的表达式的结果是否和case的值相等.

    b. if结构不仅仅可以判断等值还可以判断范围.

5. switch结构的使用注意.

    1). switch小括弧后的表达式不能是浮点型的.其他都是可以的.

    2). case后的break可以不写,但是后果很严重.

        case穿透:如果case的后面没有break,而这个case被匹配上了.就会执行这个case中的代码.并且往下面的case执行.

        遇到break才会结束.

    3). 如果多个case块的处理逻辑是一样的那么可以简写.

    4). case后面可以写1个表达式,但是表达式不能有变量参与否则报语法错误.

  5.  1case块中不要去访问另外1case块中定义的变量这样会出问题的.

        1case块可以写大括弧.

        建议:如果在case中要定义变量这个时候建议加上大括弧.

 6. 选择if还是switch

    凡是可以用switch写的代码都可以用if结构写.

    但是可以用if写的不一定可以使用switch

    建议:等值判断时使用switch

          范围判断使用if结构.

   

第二节  while循环

 1. 什么是循环

    同一件事情,反复不停的去做,这个叫做循环。

    循环的特点:

    1). 1件事情.

    2). 反复不停.

    3). 循环仍然有停止的时刻.

 2. 在代码世界中我们也会有类似的需求:

    同一段代码,我们希望它反复不停的执行指定的次数

 3. 如何让我们的代码反复不停的执行指定的次数呢?

    -> 使用简单复制和粘贴.

       缺点:代码冗余.,后期的维护和修改非常的不方便.

    -> 使用循环结构来将代码反复不停的执行指定的次数.

       优先:代码简洁,修改维护方便.

 4. 循环结构在C语言中有3.

    while循环结构 do-while循环结构 for循环结构.

    他们的功能:可以将一段代码反复不停的执行指定的次数.

    最大的区别语法不同,但是他们实现的功能都是一样的.

 5. while循环结构

   a.  作用:可以将一段代码进行反复不停的执行指定的次数.

   b.  语法:

       while(条件表达式)

       {

           执行代码;

           循环体;

       }

   c. 执行步骤

      1步骤:判断while后面的条件表达式的真假.

         1.1 如果为真,就执行循环体,循环体执行完毕之后再跳回第1步骤.

         1.2 如果为假,就结束while循环结构往下执行.

   d. 死循环.

      定义:每次执行完循环体,去判断条件表达式的真假,每次都得到真,则循环就永远没有结束的时候,像这种永远不会结束的循环我们叫做死循环.

      死循环的后果:就是一直在反复不停的执行循环体,不会结束,那么循环后面的代码是永远不会被执行到。

   e. 注意以下几点.

      C语言中的真假判断.结果为0就认为是假0就认为是真.

6. 如何使用循环结构.

   写循环之前.

   a. 你要确定那段代码是需要被反复不停的执行的.

   b. 什么时候需要结束循环.

7. 循环的应用之一:确定循环体确定循环的次数.

   循环体的代码就会被循环结构反复不停的执行,所以将要反复执行的代码塞到循环体之中.

   1). 声明1int类型的变量.循环增量.并赋默认值为0.

   2). while的条件 i <次数

   3).在循环体之中,要去修改循环增量的值.

   原理:

   循环条件有循环增量参与.而循环增量的值每次循环都要变化.前面几次的变化不足以让这个条件表达式不成立.

   最后一次的变化就可以让这个条件表达式不成立从而结束循环.

   注意:

    1). 不要忘记在循环体之中修改循环增量的值.

   2). 当你确定这个是一个循环的时候,并且也知道循环多少次,先将循环指定次数的架子搭起,然后再分析每一次要做什么事情.然后将每一次要做的事情写在循环体之中.

   3). 找不到循环体的时候

      先用最简单的复制粘贴的方式来实现,复制的那段代码基本上就是循环体了.

8. 循环应用之二:确定循环体,但是不确定循环多少次.知道循环结束的条件.

   请用户输入密码.只要密码不正确(123)就让用户重新输入,直到输入正确为止.

   分析:

   循环体:接收用户输入密码;

   循环次数:不确定.

   循环结束:当密码正确的时候, 只要密码不正确那么就要反复的循环.

   解决方案:

   1). 先搭建循环,把循环体搞定.

   2). 在分析循环继续的条件.

   3). 在循环条件那个地方写上循环要继续的条件.

       一般情况下,那个变量应该定义在外面.

  //循环结束的条件是用户名正确并且密码正确

//   int userName = 0,pwd = 0;

//   while (1)

//   {

//       printf("请输入用户名和密码:");

//       scanf("%d%d",&userName,&pwd);

//       if(userName == 123456 && pwd == 888888)

//       {

//            break;

//       }

//   }

 9. 关于scanf的缓冲区.

   1. 用户输入的数据包括回车空格都会被放在缓冲区之中.

   2. 当接收数字(整型和浮点型)的时候,会自动忽略掉缓冲区中的空格回车 Tab

   3. 当我们接收字符型数据的时候,这个时候就不会忽略任何的数据了.

10. 循环的第三种应用:遍历指定范围的数.

    1-10之间的每1个整数打印出来。

    这肯定是1个指定次数的循环。

    实现步骤.遍历n-m之间的整数.

    1). 先定义1个循环增量并赋值为最小值n

    2). 循环条件 i <= m最大值.

    3). 在循环体之中,循环增量的值就是这个范围中的每1个整数.

    4). 记得在循环体之中修改循环增量的值.

    我们将循环增量的值给利用起来了.每次循环的时候打印循环增量的值都是不一样的因为循环增量的值每次循环的时候都在发生变化.

 11. 循环应用之四:求指定范围中符合特定条件的数.

    请找出1-100之间可以被7整除的数.

    思路与步骤:

    1). 先将这个范围之中的每1个整数遍历出来.

    2). 判断遍历出来的这个数是不是符合特定条件的.

 12. 循环的应用之五:求累加和与平均值.

    请计算1-10之间每1个整数的累积和.

    思路:

    1). 先准备一个容器.这个容器就是用来装累加和的.

    2). 把这一堆数中的每一个数遍历出来.

        将遍历出来的数累加到容器里面去.

    3). 当遍历完成以后,框中的数据就是这堆数据的总和.

    练习:

    让用户输入5个数求用户输入的5个数的累加和.

    #include <stdio.h>

    int main()

{

//   int sum = 0;

//   int i = 1;

//   while (i < 6)

//   {

//       int num = 0;

//       printf("请输入%d个数:",i);

//       scanf("%d",&num);

//       i++;

//     }

//    printf("这些数的和是:%d",sum);

//    return  0;

//    }

13. 循环应用之六:求最大值和最小值.

14. break

    1). break也可以使用在循环体之中.如果在循环体之中遇到了break,就表示立即结束当前循环结构.

        结束循环的方式:

        -> 判断循环条件得到假就结束.

        -> 在循环体之中遇到了break就结束.

    continue

    1). 只能用在循环体之中。如果在循环体之中遇到了continue就会立即结束当前次的循环,然后进入下次循环,当遇到了continue就会立即结束本次循环。如果循环体后还有         代码,是不会执行的,立即进入下次循环,

 


这篇关于iOS笔记:第四篇 C语言 流程控制的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1129911

相关文章

Spring Security 基于表达式的权限控制

前言 spring security 3.0已经可以使用spring el表达式来控制授权,允许在表达式中使用复杂的布尔逻辑来控制访问的权限。 常见的表达式 Spring Security可用表达式对象的基类是SecurityExpressionRoot。 表达式描述hasRole([role])用户拥有制定的角色时返回true (Spring security默认会带有ROLE_前缀),去

Security OAuth2 单点登录流程

单点登录(英语:Single sign-on,缩写为 SSO),又译为单一签入,一种对于许多相互关连,但是又是各自独立的软件系统,提供访问控制的属性。当拥有这项属性时,当用户登录时,就可以获取所有系统的访问权限,不用对每个单一系统都逐一登录。这项功能通常是以轻型目录访问协议(LDAP)来实现,在服务器上会将用户信息存储到LDAP数据库中。相同的,单一注销(single sign-off)就是指

Spring Security基于数据库验证流程详解

Spring Security 校验流程图 相关解释说明(认真看哦) AbstractAuthenticationProcessingFilter 抽象类 /*** 调用 #requiresAuthentication(HttpServletRequest, HttpServletResponse) 决定是否需要进行验证操作。* 如果需要验证,则会调用 #attemptAuthentica

安卓链接正常显示,ios#符被转义%23导致链接访问404

原因分析: url中含有特殊字符 中文未编码 都有可能导致URL转换失败,所以需要对url编码处理  如下: guard let allowUrl = webUrl.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed) else {return} 后面发现当url中有#号时,会被误伤转义为%23,导致链接无法访问

科研绘图系列:R语言扩展物种堆积图(Extended Stacked Barplot)

介绍 R语言的扩展物种堆积图是一种数据可视化工具,它不仅展示了物种的堆积结果,还整合了不同样本分组之间的差异性分析结果。这种图形表示方法能够直观地比较不同物种在各个分组中的显著性差异,为研究者提供了一种有效的数据解读方式。 加载R包 knitr::opts_chunk$set(warning = F, message = F)library(tidyverse)library(phyl

透彻!驯服大型语言模型(LLMs)的五种方法,及具体方法选择思路

引言 随着时间的发展,大型语言模型不再停留在演示阶段而是逐步面向生产系统的应用,随着人们期望的不断增加,目标也发生了巨大的变化。在短短的几个月的时间里,人们对大模型的认识已经从对其zero-shot能力感到惊讶,转变为考虑改进模型质量、提高模型可用性。 「大语言模型(LLMs)其实就是利用高容量的模型架构(例如Transformer)对海量的、多种多样的数据分布进行建模得到,它包含了大量的先验

【学习笔记】 陈强-机器学习-Python-Ch15 人工神经网络(1)sklearn

系列文章目录 监督学习:参数方法 【学习笔记】 陈强-机器学习-Python-Ch4 线性回归 【学习笔记】 陈强-机器学习-Python-Ch5 逻辑回归 【课后题练习】 陈强-机器学习-Python-Ch5 逻辑回归(SAheart.csv) 【学习笔记】 陈强-机器学习-Python-Ch6 多项逻辑回归 【学习笔记 及 课后题练习】 陈强-机器学习-Python-Ch7 判别分析 【学

系统架构师考试学习笔记第三篇——架构设计高级知识(20)通信系统架构设计理论与实践

本章知识考点:         第20课时主要学习通信系统架构设计的理论和工作中的实践。根据新版考试大纲,本课时知识点会涉及案例分析题(25分),而在历年考试中,案例题对该部分内容的考查并不多,虽在综合知识选择题目中经常考查,但分值也不高。本课时内容侧重于对知识点的记忆和理解,按照以往的出题规律,通信系统架构设计基础知识点多来源于教材内的基础网络设备、网络架构和教材外最新时事热点技术。本课时知识

论文阅读笔记: Segment Anything

文章目录 Segment Anything摘要引言任务模型数据引擎数据集负责任的人工智能 Segment Anything Model图像编码器提示编码器mask解码器解决歧义损失和训练 Segment Anything 论文地址: https://arxiv.org/abs/2304.02643 代码地址:https://github.com/facebookresear

C语言 | Leetcode C语言题解之第393题UTF-8编码验证

题目: 题解: static const int MASK1 = 1 << 7;static const int MASK2 = (1 << 7) + (1 << 6);bool isValid(int num) {return (num & MASK2) == MASK1;}int getBytes(int num) {if ((num & MASK1) == 0) {return