首页 > 其他分享 >⑤分支与循环

⑤分支与循环

时间:2024-10-23 21:47:25浏览次数:3  
标签:语句 case else 运算符 循环 break 表达式 分支

提前说一下哦,C语言是结构化的程序设计语言,结构是说顺序结构、选择结构、循环结构

if语句

if

语法形式为下

if(表达式)
  语句

当表达式为 真 时,语句执行,反之为 假 时语句不执行。

那何谓 真 何为 假呢?
c语言中,0为假,非0为真。简单来讲,表达式的结果为0时,语句不执行,反之执行。

else

if—else语法形式如下:

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

分支中包含多条语句

注意,if与else语句中默认都只控制一条语句。那怎么如果想控制多条语句,可在if/else后加入{ },从而控制多条语句—这个块也叫程序块,或者复合语句

嵌套if

在 if else 语句中, else 可以与另⼀个 if 语句连⽤,构成多重判断
格式如下
1️⃣

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

2️⃣

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

悬空else问题

对于上面的多个if—else,他们到底怎么执行的呢?
可以简单记忆为,else 总是跟最接近的 if 匹配

关系操作符

c语言中用于比较的表达式,称为**“关系表达式”,里面运用的运算符自就叫做“关系运算符”**。
例:
• > ⼤于运算符
• < ⼩于运算符
• >= ⼤于等于运算符
• <= ⼩于等于运算符
• == 相等运算符
• != 不相等运算符
关系表达式通常返回 0 或 1 ,表⽰真假。

注意:相等运算符 == 与赋值运算符 = 是两个不⼀样的运算符,不要混淆。有时候,可能会不⼩⼼写出下⾯的代码,它可以运⾏,但很容易出现意料之外的结果。

if(x=3)
...

上⾯⽰例中,原意是 x == 3 ,但是不⼩⼼写成 x = 3 。这个式⼦表⽰对变量 x 赋值 3 ,它的返回值为 3 ,所以 if 判断总是为真。

另⼀个需要避免的错误是:多个关系运算符不宜连⽤

条件操作符

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

exp1?exp2:exp3

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

QwQ可以来简化 if—else

逻辑操作符:&&,||,!

逻辑运算符提供逻辑判断的功能,主要有下面三个运算符:
• ! :逻辑取反运算符(改变单个表达式的真假)。
• && :逻辑与运算符,就是并且的意思(两侧的表达式都为真,则为真,否则为假)。
• || :逻辑或运算符,就是或者的意思(两侧⾄少有⼀个表达式为真,则为真,否则为假)。

提一嘴,c语言中,非0表示真,0为假。

逻辑取反运算符!

在这里插入图片描述

逻辑与运算符

在这里插入图片描述
&& 就是与运算符,也是并且的意思, && 是⼀个双⽬操作符,使⽤的⽅式是 a&&b , && 两边的表达式都是真的时候,整个表达式才为真,只要有⼀个是假,则整个表达式为假。

逻辑或运算符

在这里插入图片描述
与&&相似,但是,||两边的表达式有一个真的就ok

短路

C语言中 逻辑运算符 有一个特点,总是先对左侧的表达式求值,再对右侧表达式求值。【目的是为了减小机器的运算量】
如果左边的表达式满⾜逻辑运算符的条件,就不再对右边的表达式求值。这种情况称为**“短路”**。

比如:&&左边表达式不在条件内,右边的表达式就不用再求值。||也是一样的道理,左边表达式满足条件了,右边表达式就不用再去求值了。
像这种仅仅根据左操作数的结果就能知道整个表达式的结果不再对右操作数进⾏计算的运算称为短路求值

switch语句

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

switch (expression) {
 case value1: statement
 case value2: statement
 default: statement
}

根据表达式 expression 不同的值,执⾏相应的 case 分⽀。如果找不到对应的值,就执⾏ default 分⽀

注意:
• switch 后的 expression 必须是整形表达式
• case 后的值,必须是整形常量表达式
• case 和后边的数字之间必须有空格
• 每⼀个 case 语句中的代码执⾏完成后,需要加上 break ,才能跳出这个switch语句。如果不加,就会继续执行下面的case语句。【可把case想象成入口,break想象成出口】
• default 与 case,位置没固定要求,放在前面后面都可。
• break 也不是每个 case 语句都得有,得根据实际情况来。例如:

#include <stdio.h>
int main()
{
 int day = 0;
 scanf("%d", &day);
switch(day)
 {
 case 1:
 case 2:
 case 3:
 case 4:
 case 5:
 printf("⼯作⽇\n");
 break;
 case 6:
 case 7:
 printf("休息⽇\n");
 break;
 }
 return 0;
 }

while循环

形式:

while(表达式)
	语句     //如果后面条件满足,会死循环执行语句

如果想包含更多的语句,可以加上{ }。

• 一个 break 只能跳出一个 switch

for循环

形式:

for(表达式1; 表达式2; 表达式3)
	语句;//如果循环体想包含更多的语句,可以加上⼤括号

表达式1 ⽤于循环变量的初始化
表达式2 ⽤于循环结束条件的判断
表达式3 ⽤于循环变量的调整

do-while循环

break和continue语句

在循环执⾏的过程中,如果某些状况发⽣的时候,需要提前终⽌循环,这是⾮常常⻅的现象。C语⾔中
提供了break与continue 两个关键字,就是应⽤到循环中的。

所以break 的作⽤就是永久的终⽌循环,只要break 被执⾏,break 外的第⼀层循环就终⽌了。那以后我们在循环中,想在某种条件下终⽌循环,则可以使⽤break 来完成我们想要的效果

continue 是继续的意思,在循环中的作⽤就是跳过本次循环中continue后面的代码,继续进行下⼀次循环的判断。

goto语句

#include <stdio.h>
 int main()
 {
 printf("hehe\n");
 goto next;
 printf("haha\n");
 next:
 printf("跳过了haha的打印\n");
 return 0;
 }

标签:语句,case,else,运算符,循环,break,表达式,分支
From: https://blog.csdn.net/H2034562095/article/details/143056477

相关文章

  • HarmonyOS:ArkUI最佳实践(1)ForEach循环渲染
    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(MaoistLearning)➤博客园地址:为敢技术(https://www.cnblogs.com/strengthen/ )➤GitHub地址:https://github.com/strengthen➤原文地址:https://www.cnblogs.com/strengthen/p/......
  • IDEA如何在当前分支的基础上新建一个分支
    前言我们在使用IDEA开发Java应用时,总是和git一起使用的,有时候,我们需要在当前的分支上新建一个分支,用于做一些额外功能开发,或者BUG修复等。那么,我们应该如何在IDEA中新建一个分支呢?如何新建分支首先,我们点击下我们当前的分支,默认是当前分支切出来新分支,所以需要哪个分支切出来,......
  • 队列以及循环队列及其基本操作
    和栈相反,队列是一种先进先出的数据结构,他在表尾插入元素,表头删除元素。队列也分为链队列以及顺序队列两种,链队列动态分配空间,不用担心空间不足,顺序队列简单易懂,操作方便,但是空间利用率低,所以我们一般使用链式队列结构。链式队列对顺序队列进行初始化,顺序队列分配空间类似于......
  • 循环结构程序设计之习题
    输入两个正整数m和n,求其最大公约数和最小公倍数//输入两个正整数m和n,求其最大公约数和最小公倍数#include<stdio.h>intmain(void){ intm,n,iMax,iMin,iGcd; scanf("%d%d",&m,&n); if(m>n) { iMax=m; iMin=n; } else { iMax=n; ......
  • 第3讲:分支和循环(上)
    文章目录第3讲:分支和循环(上)1.if语句1.1if1.2else1.3分支中可以包含多条语句1.4嵌套if1.5悬空else问题2.关系操作符3.条件操作符4.逻辑操作符:&&,||,!4.1逻辑取反运算符!4.2逻辑与运算符4.3逻辑或运算符4.4练习:闰年的判断4.5短路5.switch语句5.1if......
  • Java中的控制结构中的顺序结构和分支结构
    文章目录前言1.顺序结构2.分支结构2.1选择语句if2.2if格式12.3if语句格式22.3if语句格式3if语句与三元运算符2.1选择语句switch前言我是一名来自延边大学人工智能专业的热爱街舞的大四学生,目前在学习Java,我会根据我的学习路线给大家分享学习经验,这章我们学习Java中......
  • C语言第三学:分支和循环
       C语⾔是结构化的程序设计语⾔,这⾥的结构指的是顺序结构、选择结构、循环结构,C语⾔是能够实现这三种结构的,其实我们如果仔细分析,我们⽇常所⻅的事情都可以拆分为这三种结构或者这三种结构的组合。我们可以使⽤if、switch实现分⽀结构,使⽤for、while、dowhi......
  • 分支与循环:猜数字游戏的代码实现
    在我们学习分支和循环之后我们可以简单的写一个小游戏了——猜数字思维构想    一、预期效果         实现随机生成0~100之间的数字,玩家进行猜测,按结果进行判断。对于结果实现如果玩家猜大了给予玩家“猜大了”的提示;如果猜小了,给予玩家“猜小了”的提示;若......
  • 四,增强for循环
    增强for循环:简化数组和集合遍历的详细指南在Java编程中,遍历数组和集合是一个基本且频繁的操作。传统的for循环虽然可以实现这一功能,但它的语法较为繁琐,尤其是在需要遍历集合中的每个元素时。为了简化这一过程,Java引入了增强for循环(也称为for-each循环),它提供了一种更加简洁和易读......
  • 浏览器中的 事件循环 event loop
    当浏览器碰到异步代码:异步代码会放到队列。队列有两种。微任务队列和宏任务队列。执行栈与任务队列JS在解析一段代码时,会将同步代码按顺序排在某个地方,即执行栈,然后依次执行里面的函数。当遇到异步任务时就交给其他线程处理,待当前执行栈所有同步代码执行完成后,会从一个队列中去......