分支与循环

本文介绍了C语言中的基本控制结构,包括if、if...else、switch、while、for、dowhile循环以及逻辑操作符(&&、||、!),同时讲解了break和continue的用法。通过实例演示,帮助读者理解这些关键概念在编程中的应用。
摘要由CSDN通过智能技术生成

目录

1.if语句

2.关系操作符

3.条件操作符

4逻辑操作符:&&,II,!

5.switch语句

6.while循环

7.for循环

8.do while循环

9.break和continues语句

(有错误的地方请大佬指正)

正文


1.if语句

if的语法形式:

if(表达式)

语句

如果表达式为真(非零),则语句执行,若为假(0)则不执行

if …else的用法:

当表达式结果与if的相反时(为0),还想执行一个语句时用else语句

if(表达式)

语句1

else

语句2

注意:1.if和else语句中都默认控制一个语句,如果想要控制多个语句,可以使用{}形成代码块

2.else总是与最近的if匹配

嵌套if:在if else 语句中,else可以与if语句连用,构成多重判断(注意 else if是表示我可以去判断别的条件,只是和if的条件不同而已,但是if...... else就是就是与if完全相反的条件)

2.关系操作符

c语言中用来比较的表达式称为关系表达式:(>,<,>=,<=,==,!=)但并不全是比较大小,如!=和==;关系表达式返回0和1,表示真假,常用于if和while结构中

注意:1.赋值号=与相等运算符==是两个不一样的运算符

2.多个运算符不宜连用,若连用时从左向右计算,用的是返回值与后面的数进行比较,如下例e61f0bf7b35047d0b4303224697d5f7e.jpg

 3<1-》结果为0,0<=0为真-》返回值为1,固选择A

3.条件操作符

条件操作符又叫三目操作符,需要三个操作数.

形式为:exp1?exp2: exp3(若1为真,执行2,若为2执行3

举个例子:使用条件表达式实现找两数中较大值

#include <stdio.h>

int main()

{

 int a = 0;

 int b = 0;

 scanf("%d %d", &a, &b);

 int m = a>b ? a : b;

 printf("%d\n", m);

 return 0;

}

4.逻辑操作符(与或非)

 上述关系操作符不适于连用,若实在要连用时可用逻辑操作符来实现,中学时都学过与或非的逻辑关系语句,在c语言中怎么表达呢?

  • ! :逻辑取反运算符(改变单个表达式的真假)
  • &&:与运算符,就是并且的意思
  • II:或运算符,就是或者的意思

逻辑关系和高中时期讲的相同,故不多赘述

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

  • 短路

C语言逻辑运算符有一个特点,它总是先对左侧表达式求值,再对右边的表达式求值。

如果左边表达式满足逻辑运算符的条件,就不再对右边的表达式求值。这种情况称为“短路”。

仅仅根据左操作数的结果就能知道整个表达式的结果,不再对右操作数进行计算的运算叫做短路取值。(简而言之,&&时左操作数结果为0️⃣;II时左操作数非0️⃣)

例:计算代码输出的结果

5e08b2e03faa4716a1889fccab72b882.jpg

 依次输出1 2 3 4

//1 3 3 4

5.switch 语句

除了if语句外,c语言还提供了switch语句来实现分支结构.

switch 语句是一种特殊形式的if... else结构,用于判断条件有多个结果的情况

9730d588f9de427e8e7dca683e90d5c1.jpg

 以上代码中,根据表达式不同的值,执行相应的case分支,如果找不到对应的值,就执行default分支.

注:switch后的表达式必须是整型表达式

case后的值,必须是整型常量表达式

case和后边的数字之间必须有空格

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

  • switch 语句中的break 

如下例,如果没有break会是什么结果呢?

a49acb677ca1417bb35cbb616610eb88.jpg

 我们发现,结果四个全部打印了,这是为什么呢?

原因:switch 语句也是有分支效果的,只有在switch 语句中使用break 语句才能跳出switch语句,如果某一个case语句后边没有break语句,代码会继续往下执行,有可能执行其他case语句中的代码,直到遇到break语句或者switch 语句结束.比如以上代码就执行了其他case中的语句.

所以在switch 语句中break 语句是非常重要的,能实现真正的分支效果.

当然break 也不是每个case 语句中都得有,要根据实际情况决定.

  • switch 语句中的default 语句

在使用switch 语句时,当switch 后表达式的值无法匹配case语句时,这个时候要么不做处理,要么就在switch 语句中加入default 子句.

default 和case语句顺序没有要求,想怎么放怎么放,不过我们通常把default子句放在最后处理.


6.while循环

C语言一共提供了三种循环语句,while就是其中一种(高中数学学过的“当”型结构:当(表达式为真时)执行语句),与if语句非常相似。

其形式为:while(表达式)

语句;

当表达式为真时,将会实现循环效果。

  • while语句的执行流程

简而言之可以理解为当怎么样(表达式)时,就怎么做(后面的语句)

7.for循环

语法形式

for(表达式1;表达式2;表达式3)(注意是分号,新手经常打成逗号)

语句;

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

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

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

  • for循环的执行流程

8.do-while循环

语法形式:

do

语句;

while(表达式)

其实就是高中数学中的直到型结构(执行语句直到表达式==0)

  • do while循环的执行流程

9.break continue语句

​​

  • break的作用是永久性终止循环,只要遇到了break就会跳出循环
  • continue的作用是跳过本次循环continue后面的代码

for和while中的break语句作用是一样的,而continue有一些不同,如下例子

for循环中的continue的作用是跳过本次循环中continue后的代码,直接去到循环的调整部分。当某个条件发生时,本次循环无需再执行后续某些操作的时候,就可以用continue来实现

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值