【C语言】分支和循环(上)

2024-06-04 1612阅读

【C语言】分支和循环(上)

    • 1、if语句
      • 1.2 else
      • 1.3分支中包含多条语句
      • 1.4嵌套if
      • 1.5悬空else问题
      • 2、关系操作符
      • 3、条件操作符
      • 4、逻辑操作符:与、或、非(取反)(&&,||,!)
        • 4.1逻辑取反运算符
        • 4.2逻辑 与 运算符
        • 4.3逻辑或操作

          前言:C语言是一种结构化的设计语言,这里所指的结构包括:顺序结构、选择结构和循环结构。

          【C语言】分支和循环(上) 第1张

          接下来将介绍分支和循环结构,我们可以使用if、switch来实现分支结构,使用for、while、do while实现循环结构。

          1、if语句

          if语句的语法形式如下代码所示:

          if( 表达式 )
              语句
          

          表达式如果为真,则下面的语句执行,如果为假,则语句不执行。

          在C语言中,0为假(不成立),语句不执行;**非0表示真(成立)**时,语句执行。

          eg:输入一个整数,判断是的为奇数:

          【C语言】分支和循环(上) 第2张

          if语句原理图如下:

          【C语言】分支和循环(上) 第3张

          1.2 else

          接上面例子所述,如果一个数不是奇数,那么就是偶数,如果任意一个整数,要怎么判断是奇数还是偶数呢?

          这里就可以在if语句后面加上else,构成if…else语句,语法形式如下:

          if( 表达式 )
              语句1
          else
              语句2
          

          eg1:输入一个整数,判断是否为奇数,如果是奇数打印是奇数,否则打印偶数:

          【C语言】分支和循环(上) 第4张

          eg2:输入一个年龄,≥18就输出:成年,否则输出:未成年:

          【C语言】分支和循环(上) 第5张

          1.3分支中包含多条语句

          默认在if和else语句都只控制一条语句:

          【C语言】分支和循环(上) 第6张

          【C语言】分支和循环(上) 第7张

          从上述示例中可以看出,不管是成年(age>=18)或者未成年(age int a = 0; int b = 5; if (a == 1) if (b == 5) printf("hello world.\n"); else printf("good afternoon.\n"); return 0; } int a = 0; int b = 5; if (a == 1) { if (b == 5) printf("hello world.\n"); else printf("good afternoon.\n"); } return 0; } int a = 0; int b = 5; if (a == 1) { if (b == 5) printf("hello world.\n"); } else { printf("good afternoon.\n"); } return 0; } p只要带上适当的大括号,代码的逻辑就会更加清晰,所以写代码的时候可以注意大括号的使用,使得代码可读性更高。/p h32、关系操作符/h3 pC语言用于比较的表达式,称为关系表达式,使用的运算符就称为关系操作符。/pp下面介绍6个基本常用的操作符:/p blockquote pre class="brush:python;toolbar:false" 大于运算符 = 大于等于运算符 25返回1,19>20返回0。

          关系表达式中常常用于if和while结构来判断真假进行循环。

          #include 
          int main()
          {
            int num = 0;
            scanf("%d",&num);
            if(num % 5 == 0)//关系表达式运用在if语句中
            printf("%d是5的倍数\n",num);
            return 0;
          

          注意:相等运算符 ==与赋值运算符 = 是两个不一样的运算符,不要混淆。有时候,可能会不小心将相等运算符写成赋值运算符=,虽然可以运行,但得不到我们想要的效果。

          if(x =5)
          

          上述示例中,我们原本是想判断x是否与5相等,但是不小心写成了x=5.这个时候式子表示对变量x赋值为5,它的返回值为5(为真),所以if判断总是为真。

          为了防止这种错误出现,我们可以将变量写在等号的右边。

          if(5 =x)
          

          如果把==写成了=的时候编译器就会报错。

          在关系操作表达式中,多个关系运算符不宜连用。

          eg:错误示范

          a>b>c
          

          解析上面的示范:

          【C语言】分支和循环(上) 第8张

          eg:输入一个年龄,如果年龄在18-36岁之间,我们称为青年。

          【C语言】分支和循环(上) 第9张

          3、条件操作符

          条件操作符也叫三目操作符,需要接受三个操作数的,形式如下:

          exp1?exp2:exp3
          

          条件操作符的计算逻辑是:如果exp1为真,则计算exp2,计算的结果就是整个表达式的结果。如果exp1为假,则计算exp3,计算的结果就是整个表达式的结果。

          eg:使用条件操作符表示下列代码的逻辑:

          【C语言】分支和循环(上) 第10张

          参考解答:

          【C语言】分支和循环(上) 第11张

          eg2:使用条件表达式实现找两个数中的较大值:

          【C语言】分支和循环(上) 第12张

          4、逻辑操作符:与、或、非(取反)(&&,||,!)

          逻辑运算符提供逻辑判断功能,用于构建更复杂的表达式,主要有下面三个运算符:

          • !:逻辑取反运算符(改变单个表达式的真假)
          • &&:逻辑与运算符,表示并且的意思(全真为真,其余全假)
          • ||:逻辑或运算符,就是或者的意思(两侧至少有一个为真,则整个为真)

            注意:C语言中,非0表示真,0表示假

            4.1逻辑取反运算符

            【C语言】分支和循环(上) 第13张

            eg:有一个变量flag,如果flag为假(0),要做什么事情,可以写如下代码:

            【C语言】分支和循环(上) 第14张

            【C语言】分支和循环(上) 第15张

            如果flag为真,!flag为假,相反flag为假,!flag为真。

            所以上述flag为假,取反后为真,执行if语句的代码。

            4.2逻辑 与 运算符

            【C语言】分支和循环(上) 第16张

            &&就是与运算符,也是并且的意思,&&是一个双目操作符,使用的方式是a&&b,&&两边的表达式都是真的时候,整个表达式为真,只要有一个是假,则为假。

            如果我们要表示6-8月是夏天,代码如何实现呢?

            【C语言】分支和循环(上) 第17张

            这里的month既要大于等于6,又要小于等于8,且同时必须满足。

            4.3逻辑或操作符

            【C语言】分支和循环(上) 第18张

            ||就是或运算符,也就是或者的意思,||也是一个双目操作符,使用的方式是a||b,||两边的表达式只要有一个是真,整个表达式就是真,两边的表达式都为假的时候,才为假。

            比如:我们说一年中月份是12月或者1月或者2月是冬天,那么我们怎么使用代码体现呢?

            【C语言】分支和循环(上) 第19张


    免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

    目录[+]