c语言的分支与循环

本文介绍了C语言中的基本结构化编程概念,包括if、switch、while、for循环以及逻辑操作符如&&、||,同时强调了关系运算符的使用和break/continue/goto语句在控制流程中的作用。
摘要由CSDN通过智能技术生成

首先我们知道:c语言是结构化的编程语言,这里的结构指的是顺序结构、选择结构、循环结构

我们可以使用if,switch语句实现分支结构,使用for,while,do while实现循环结构。

目录:

1. if语句
2. 关系操作符
3. 逻辑操作符:&&,II,!
4. switch语句
5. while循环
6. for循环
7. break和continue语句
8. goto语句

1.if语句

1.1 if

if语句的语法形式:

  • if(表达式)
  • 语句

若表达式结果为真,则执行语句,反之不执行

1.2 else

 if中的语句既有成立的时候,当然也有不成立的时候。

这时就需要if···else···语句了,其语法形式:

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

c9cbb11cb0274044977ff052fe41eaed.png

 

这几行代码用if···else语句判断了一个数是奇数还是偶数。

注意:if和else语句中都默认只控制一条语句。

如果当if后面的表达式成立时,需要执行多个语句,那么要在if后面用大括号将需要执行的语句括起来。

形式如下:

  • if(表达式)
  • {
  • 语句1
  • 语句2
  • ·····
  • }
  • else
  • {
  • 语句3
  • 语句4
  • ·····
  • }

1.3 嵌套if

在if else语句中,else可以和另一个if语句连用,构成多重判断。

b4402fc1dcfa424c9c8027ab2b2eeccc.png

 

注意:当有多个if和else,else始终与最接近的上一个if匹配。

如果不对if和else后面的语句加上大括号,那么程序可能比较混乱,所以适当地加上大括号,会使逻辑更加清晰。

2.关系操作符

c语言中用于比较的表达式被称为"关系表达式",里面的运算符就被称为关系运算符。

主要有以下6种:

  • >大于运算符
  • <小于运算符
  • >=大于等于运算符
  • <=小于等于运算符
  • ==相等运算符
  • !=不相等运算符

注意:关系表达式的结果通常会返回0或1,0表示假,1(所有的非0数)表示真。

注意:在c语言中 ==与=是不一样的运算符。==用于判断左右是否相等,=用于赋值。

知道了以上几种运算符,还有一个值得注意的是多个关系运算符不宜连用

比如

  • i<j<k

对于这个式子执行情况是:先判断i<j的真假,真返回1,假返回0,再判断这个返回值是否<k:

 

  • (i<j)<k

举个例子:如果程序写成 -2<-1<0,那么会先判断-2<-1为真,返回1,再判断1<0为错,返回0。由此可见这个式子在程序中是错的,所以关系运算符不宜连用

 

3.逻辑操作符

逻辑操作符用于构建更复杂的表达式,主要有

  • !:逻辑取反运算符(改变单个表达式的真假)
  • &&:与运算符(在两个表达式之间,表示并且)
  • ||:或运算符(在两个表达式之间,表示或者)

对于关系运算符不宜连用的情况,我们可以使用与运算符来表示:

  • i<j&&j<k

3.1 短路

 

C语言逻辑运算符还有一个特点,它总是先对左侧的表达式求值,再对右边的表达式求值,这个顺序是保证的。如果左边的表达式满足逻辑运算符的条件,就不再对右边的表达式求值。这种情况称为 “短路”

如:

  • if  (month>3&&month<5)

当左边的表达式month>3结果是0时,就不会判断右边的表达式了。

  • if  (month=1||month=2)

当左边的表达式month=1结果是1时,就不会判断右边的表达式了。

4.switch语句

switch语句和if语句都能实现分支结构

switch 语句是一种特殊形式的if...else 结构,用于判断条件有多个结果的情况。它把多重的else if 改成更易用、可读性更好的形式。

其语法形式:

  • switch (表达式)
  • {
  • case 值1:
  • 语句1
  • break;
  • case 值2:
  • 语句2
  • break;
  • }

注意:1.switch后面的表达式必须为整形表达式

2.case与后面的值之前要用空格隔开,且后面的值,必须为整形常量表达式

3.每一个case语句中的代码执行完成后,需要加上break,才能跳出这个switch语句

4.1switch语句中的break

只有在 switch 语句中使用 break 才能在跳出 switch 语句,如果某一个 case 语句的后边没有 break语句,代码会继续向下执行,有可能执行其他case语句中的代码,直到遇到 break 语句或者 switch 语句结束。

4.2switch语句中的default

在使用 switch 语句的时候,我们经常可能遇到一种情况,比如switch 后的表达式中的值无法匹配代码中的case 语句的时候,这时候要不就不做处理,要不就得在switch 语句中加入default 子句。

如 判断一周里哪一天是工作日还是休息日:42ebb450027b4f57946bc93427c794cf.png

77f5c6ec15a84e2d800ab56d996c42ae.png 

 5.while循环

while的语法形式:

  • while (表达式)
  • 语句;

当表达式结果为真时,就循环执行下面的语句,当需要执行多个语句时,用大括号将这些语句括起来。9cc394da62644eaf893b217e7db29c66.png

 6.for循环

for循环是三种循环语句中使用最多的,其语法形式:

  • for (表达式1;表达式2;表达式3)
  • 语句

表达式1 用于循环变量的初始化

表达式2 用于循环结束条件的判断

表达式3 用于循环变量的调整

打印1到10的值:

dcb4170ff96f403c868841212dff0896.png

 7.break和continue语句

在循环执行的过程中,如果某些状况发生的时候,需要提前终止循环,这是非常常见的现象。C语言中提供了 break 和 continue 两个关键字,就是应用到循环中的。

break的作用是用于永久的终止循环,只要 break 被执行,直接就会跳出循环,继续往后执行。

continue 的作用是跳过本次循环 continue 后边的代码,在for 循环和while 循环中有所差异的。

 

for和while循环中continue的差异在于:

  • 在 for 循环中 continue 的作用是跳过本次循环中 continue 后的代码,直接去到循环的调整部分。
  • while循环中,使用continue会跳过本次循环中continue后的代码,如果循环变量的调整在continue后面,就会被跳过,程序就会出现意料之外的结果。

8.goto语句

使用goto语句时需要设置一个跳转标号,goto语句可以实现在同一个函数内跳转到设置好的标号处。

语法形式:

  • again:
  •            语句;
  • goto  again

goto 语句如果使用的不当,就会导致在函数内部随意乱跳转,打乱程序的执行流程,建议是能不用尽量不去使用;但是goto 语句也不是一无是处,在多层for循环的代码中,如果想快速跳出,使用一个break只能跳出一次循环而使用 goto 就非常的方便了。

 

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值