【C语言】分支和循环

这篇具有很好参考价值的文章主要介绍了【C语言】分支和循环。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

C语言是结构化的程序设计结构,这里的结构是指顺序结构,选择结构,循环结构
我们可以使用ifswitch实现分支结构,使用for,while,do while实现循环结构。

1.if语句

1.1 if

if的语法形式如下:

if(表达式)
   语句

表达式成立(为真),则语句执行,表达式不成立(为假),则语句不执行
在C语言中,0为假,非0为真,也就是说表达式的结构如果是0,则语句不执行,表达式结构不是0,则语句执行。
比如:

#include<stdio.h>
int main()
{
	int num = 0;
	scanf("%d",&num);
	if(num&2==1)
		printf("%d 是奇数\n",num);
	return 0;
}

1.2 else

如果上面代码输入的是一个偶数,就需要**if…else…**语句
语法形式如下:

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

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

#include <stdio.h>
int main()
{
 	int num = 0;
 	scanf("%d", &num);
 	if(num % 2 == 1)
 		printf("%d 是奇数\n", num);
 	else
 		printf("%d 是偶数\n", num);
 return 0;
 }

1.3 分支中的多条语句

if和else默认情况下只能控制一条语句,如果我们想要同时控制多条语句时,我们就需要使用**{ }**将多条语句括起来
语法形式如下:

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

1.4 嵌套if

在if else语句中,else可以与多个if语句连用,构成多重判断
语法形式如下:

if(表达式)
{	
	语句1;
	语句2}
else if
{
	语句3;
	语句4}
else
{
	语句5;
	语句6}

1.5 悬空else问题

如果有多个 if 和 else,记住这条规则:else总是和最近的if匹配

2.switch语句

除了if语句外,C语言还提供了switch语句来实现分支结构
switch语句是一种特殊的if。。。else结构,用于判断条件有多个结果的情况
语法形式如下:

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

上面代码中,根据表达式 expression 不同的值,执行相应的 case 分支。如果找不到对应的值,就执行 default 分支。
注意:
switch 后的 expression 必须是整型表达式
case 后的值,必须是整形常量表达式

2.1 if语句和switch语句的对比

练习:输入任意⼀个整数值,计算除3之后的余数
如果使用if语句完成,如下:

#include <stdio.h>
int main()
{
 	int n = 0;
 	scanf("%d", &n);
 	if(n%3 == 0)
 		printf("整除,余数为0\n");
 	else if(n%3 == 1)
 		printf("余数是1\n");
 	else
 		printf("余数是2\n");
 return 0;
}

如果使用switch语句改写,就可以是这样的:

#include <stdio.h>
int main()
{
 	int n = 0;
	scanf("%d", &n);
 	switch(n%3)
 	{
 		case 0:
 			printf("整除,余数为0\n"); 
 			break;
 		case 1:
 			printf("余数是1\n"); 
 			break;
 		case 2:
 			printf("余数是2\n"); 
 			break;
 	}
 	return 0;
}

上述代码中,我们需要注意:
1.case 和后边的数字之间必须有空格
2. 每⼀个 case 语句中的代码执行完成后,需要加上 break ,才能跳出这个switch语句。

2.2 switch语句中的break

如果将上面代码中case语句中的break去掉:

#include <stdio.h>
int main()
{
 	int n = 0;
 	scanf("%d", &n);
 	switch(n%3)
 	{
 		case 0:
 			printf("整除,余数为0\n"); 
 		case 1:
 			printf("余数是1\n"); 
 		case 2:
 			printf("余数是2\n"); 
 	}
 	return 0;
}

【C语言】分支和循环,c语言,算法,开发语言
原因:switch 语句也是分支效果的,只有在 switch 语句中使用 break 才能在跳出 switch 语句,如果某⼀个 case 语句的后边没有 break 语句,代码会继续玩下执行,有可能执行其他 case语句中的代码,直到遇到 break 语句或者 switch 语句结束。所以switch 语句中 break 语句是非常重要的,能实现真正的分支效果。当然, break 也不是每个 case 语句都得有,按实际情况。

2.3 switch语句中的default

在使用switch语句时,我们会遇到switch后的表达式中的值无法匹配代码中case语句的时候,这是就需要在switch语句中加入default语句
语法形式如下:

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

如果switch 后边的 expression 的结果不是 value1 ,也不是 value2 的时候,就会执行default 子句。

2.4 switch语句中的case和default的顺序问题

在 switch 语句中 case 语句和 default 语句是没有顺序要求的,只要你的顺序是满足实际需求的就可以。
通常情况下我们把default子句放在最后面处理。

3.while循环

C语言提供了3种循环语句, while 就是其中⼀种,while 语句的语法结构和 if 语句非常相似

3.1 if和while的对比

二者的语法形式相似,在这里就不再展示了,我们可以通过具体代码来进行比较:

//代码1
#include <stdio.h>
int main()
{
 	if(1)
 		printf("hehe\n"); //if后边条件满⾜,打印⼀次hehe
 return 0;
}

//代码2
#include <stdio.h>
int main()
{
 	while(1)
 		printf("hehe\n"); //while后边的条件满⾜,死循环的打印hehe
 return 0;
}

while语句可以实现循环效果的

3.2 while语句的执行流程

【C语言】分支和循环,c语言,算法,开发语言
首先上来就是执行判断表达式,表达式的值为0,循环直接结束;表达式的值不为0,则执行循环语句,语句执行完后再继续判断,是否进行下一次判断。

4.for循环

语法形式如下:

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

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

4.1 for循环的执行流程

【C语言】分支和循环,c语言,算法,开发语言
⾸先执行表达式1初始化循环变量,接下来就是执行表达式2 的判断部分,表达式2的结果如果==0,则循环结束; 表达式2的结果如果!=0则执行循环语句,循环语句执行完后,再去执行表达式3,调整循环变量,然后再去 表达式2的地方执行判断,表达式2的结果是否为0,决定循环是否继续。
整个循环的过程中,表达式1初始化部分只被执行1次,剩下的就是表达式2、循环语句、表达式3在循环。

4.2 while循环和for循环的对比

【C语言】分支和循环,c语言,算法,开发语言
for 和 while 在实现循环的过程中都有初始化、判断、调整这三个部分,但是 for 循环的三个部分非常集中,便于代码的维护,如果代码较多的时候 while 循环的三个部分就比较分散,所以从形式上 for 循环要更优⼀些。

5. do-while循环

语法形式如下:

do
 	语句;
while(表达式)

while和for这两种循环是先判断,满足条件就进入循环,执行循环语句,如果不满足就跳出循环;而do while循环是先直接进入循环体,执行循环语句,然后再执行while后的判断表达式,如果表达式的值为真,就会进行下一次,表达式为假,则不再循环

5.1 do while循环的执行流程

【C语言】分支和循环,c语言,算法,开发语言
在 do while 循环中先执行图上的“语句”,执行完语句,在去执行“判断表达式”,判断表达式的结果是!=0,则继续循环,执行循环语句;判断表达式的结果==0,则循环结束。所以在 do while 语句中循环体是至少执行一次的,这是 do while 循环比较特殊的地方。
一般 do while 使用在循环体至少被执行一次的场景下,所以较少一些。

6. break和continue语句

在循环执行的过程中,如果某些状况发生时,需要提前终止循环。C语言中提供了break和continue两个关键字,作用如下:
break 的作用是用于永久的终止循环,只要 break 被执行,直接就会跳出循环,继续往后执行。
continue 的作用是跳过本次循环 continue 后边的代码,在 for 循环和 while 循环中有所差异的。

7. goto语句

C语言提供了⼀种非常特别的语法,就是 goto 语句和跳转标号, goto 语句可以实现在同⼀个函数内跳转到设置好的标号处。
例如:

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

goto语句如果使用不当,会导致在函数内部随意乱跳,打乱程序的执行流程,但是goto语句并不是一无是处,在多层循环中,如果想快速跳出,使用goto语句就很方便

for(...)
{
 	for(...)
 	{
 		for(...)
 		{
 			if(disaster)
 				goto error;
 		}
 	}
 }
error:
		...

如果for循环中想提前退出可以使用break,但是一个break只能跳出一层循环,如果三层循环嵌套就得使用3个break才能跳出,所以在这种情况下可以使用goto语句就会变得更加快捷。文章来源地址https://www.toymoban.com/news/detail-757996.html

到了这里,关于【C语言】分支和循环的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • C语言_分支和循环语句(2)

    C语言:结构化的程序设计语言 顺序结构、选择结构、循环结构 导引 过于分散 使用for循环打印1~10 循环体默认只能控制一条语句 想控制多条语句的话,要加大括号 示例 建议: 1.不可在 for 循环体内修改循环变量,防止 for 循环失去控制。 2.建议 for 语句的循环控制变量的取值

    2024年02月10日
    浏览(41)
  • 【C语言】深入了解分支和循环语句

    💓 博客主页:江池俊的博客 ⏩ 收录专栏:C语言初阶之路 🎉如果觉得博主的文章还不错的话,请点赞👍收藏🌟 三连支持一下博主💞 💫“每一天都是一个全新的机会,用积极的心态去迎接挑战吧!” 前言  一、什么是语句? 二、分支语句(选择结构) 2.1.if语句 2.1.1 悬

    2024年02月17日
    浏览(51)
  • 初阶C语言-分支和循环语句(下)

    “花会沿途盛开,以后的路也是。” 今天我们一起来继续学完分支语句和循环语句。 3.4.1 do语句的用法 在前面,我们学过了用 while循环 和 for循环 在屏幕上打印1~10的数字,那么在 do...while()循环 中,如何实现这步操作呢? 接下来,让我们用一张图了解一下 do...while()循环 的

    2024年02月15日
    浏览(56)
  • 【C语言记】分支语句和循环语句

    C 语句可分为以下五类: 表达式语句:3+5; 函数调用语句:printf(\\\"hehen\\\"); 复合语句 空语句: ;(需要一条语句,但这条语句什么都不做。) 控制语句 控制语句 用于控制程序的执行流程,以实现程序的各种结构方式,它们由特定的语句定义符组成, C 语言有九种控制语句。

    2024年02月07日
    浏览(46)
  • C语言学习笔记---C语言分支与循环语句

    前言: 什么是语句? C语言可分为以下五类: 表达式语句 函数调用语句 控制语句 复合语句 空语句 语句 :C语言中,由分号隔开的句子就是一条语句 如: C语言中用 非零 表示 真 ,用 零 表示 假 ,即: 逻辑真,逻辑假 三大语法结构 :顺序结构、分支(选择)结构、循环结构

    2024年02月16日
    浏览(46)
  • 你真的掌握了“C语言分支循环”吗

    目录  前言 1. if语句 1.1 if 1.2 else 1.3 分支中包含多条语句 1.4 嵌套if 1.5 悬空else问题 2. 关系操作符 3. 条件操作符 4. 逻辑操作符: , || , ! 4.1 逻辑取反运算符 4.2 与运算符 4.3 或运算符 4.4 练习:闰年的判断 4.5 短路 5. switch语句 5.1 if语句和switch语句的对比 5.2 switch语句中的brea

    2024年02月03日
    浏览(39)
  • c语言从入门到实战——分支和循环

    C语言是结构化的程序设计语言,这里的结构指的是顺序结构、选择结构、循环结构,C语言是能够实 现这三种结构的,其实我们如果仔细分析,我们日常所见的事情都可以拆分为这三种结构或者这三种结构的组合。 我们可以使用 if 、 switch 实现分支结构,使用 for 、 while 、

    2024年02月08日
    浏览(30)
  • 【手撕C语言 第四集】分支和循环(上)

    C语句可分为以下五类: 表达式语句 函数调用语句 控制语句 复合语句 空语句 本章后面介绍的是控制语句。 控制语句用于控制程序的执行流程,以实现程序的各种结构方式(C语言支持三种结构:顺序结构、选 择结构、循环结构),它们由特定的语句定义符组成,C语言有九

    2024年01月18日
    浏览(46)
  • 万字C语言之分支语句和循环语句

    前言: 📕作者简介:热爱编程的小七,致力于C、Java、Python等多编程语言,热爱编程和长板的运动少年! 📘相关专栏Java基础语法,JavaEE初阶,数据库,数据结构和算法系列等,大家有兴趣的可以看一看。 😇😇😇有兴趣的话关注博主一起学习,一起进步吧! C语句可分为以

    2024年02月09日
    浏览(47)
  • c语言修炼第二章--分支与循环

    目录 前言 2.1分支语句 2.1.1什么是语句 2.2分支语句 2.2.1if语句的语法形式 2.2.2悬空else问题 2.2.3if书写形式的对比 2.3switch语句 2.3.1switch的语法形式 2.3.2 switch与break的关系 2.3.3 switch与default的关系 小伙伴们端午安康吖!今天我们要开始新的一章的学习!直接开始学习叭! 2.1.1什么

    2024年02月11日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包