广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >C语言超详细讲解循环与分支语句基础
  • 472
分享到

C语言超详细讲解循环与分支语句基础

2024-04-02 19:04:59 472人浏览 八月长安
摘要

目录写在开始1. 分支语句1.1 if语句1.2 switch2. 循环语句2.1 while()语句2.2 do while()语句2.3 for 语句for语句中表达式的省略br

写在开始

在内容开始之前给大家介绍一下在计算机中如何表示真假

0表示假,非0表示真。

1. 分支语句

分支语句也叫做条件选择语句,主要分为if语句和switch语句。

1.1 if语句

if()…{} else if()…{} else {}

代码解释:

#include<stdio.h>  
//这里是引入“printf”函数所在的头文件,大家在使用函数时要记得把函数的头文件加上哦
int main()
{
   int a = 1, b = 2, c = 3;
   if (a > c)  printf("a比c大");
   else if (a > b) printf("a比b大");
   else (printf("a比b和c都小"));
}

在这里插入图片描述

分析:

在if(a>c)中a>c为假,故会跳过printf(“a比c大”);,接下来会运行else if,而a>b也为假,故会向下执行else的语句"a比b和c都小",最终如上图所示。

注:如果在第一个if里面条件成立了那之后的else if和else语句都将不会被运行。

  • if()…{}…else {}

理解完第一种方法后面这两种方法也就不难理解了,在这个语句中少了if else语句,因此对比上一种方法这种语句在运行时跳过了else if的判断与执行阶段。

或者我们可以这样理解:在这里其实else if也存在,比如以这种方式:else if(0) {expression;}

  • if() …{}

关于这个语句想必不用我多说了吧,相信聪明的小伙伴们自己便能明白了。

总结:

在if()的括号内填入条件,如果条件成立时,将会执行后面大括号(代码块)里的的表达式,而若条件不成立时,系统将会直接跳过表达式去执行else if 的判断,条件成立则运行else if 后面的代码块,反之则跳过,最后如果都不符合条件的话则会直接执行else后的语句。

1.2 switch

switch语句一般是和循环语句一起搭配使用的,现在先了解一下switch语句是怎么使用的。

代码格式:

switch(a)//a是一个整形变量
{
   case 1:expression1;//不一定要写case 1,可以是任意a所能取值的数
   break;
   case 2:expression2;
   break;
   ....
   default:expression;
}

在switch()里放入一个整形变量a,程序会根据a的值跳转到对应的case 语句并执行,而执行到break时程序便会跳出switch语句,如果没有对应的case语句则会执行default语句.下面请看实例来了解:

//将数字转换成其在一周内的位置
int main()
{
	int day = 0;
	scanf("%d",&day);//通过键盘向变量day输入一个整数
	switch (day){
	case 1:printf("周一"); 
		break;
	case 2:printf("周二"); 
		break;
	case 3:printf("周三");
		break;
		//中间的我省略了,这里代码演示主要是为了让大家了解功能,长篇大论也不太好
	case 7:printf("周日");
		break;
	default:printf("请输入正确的数字");
	}
	return 0;
}

前面说了break的作用是跳出switch语句,现在给大家看看如果没有break的效果吧:

在这里插入图片描述

既然没有跳出去那就继续执行下一个语句呗,没有问题。break语句其实并不是每个case语句后面都要加上,有些时候只在必要的地方加上就可以达到我们想要的效果了.

2. 循环语句

循环语句主要分为三种:for语句,while语句和do while语句,这三种语句都是可以做到相互转换的,一般来说for语句会方便点,不过最终用哪种还是看具体问题和个人的喜好吧。

2.1 while()语句

while(condition)
{
    expression;
}

解释:

condition 为判断条件。

expression 为条件为真时执行的语句。

运行时:

while()语句首先是判断括号里面表达式的真值,如果条件为真(非0),则会运行后面的代码块,运行完之后会再一次的进入条件判断阶段,如果条件还为真,则会继续运行直至条件为假(0)时跳出循环。

这里给大家出个小题目吧,随便复习下刚刚讲的if语句(不会也不要紧的,慢慢来,这里只是给大家加深点印象)

打印10以内的奇数。

有没有小伙伴是这样写的呢:printf("%d%d%d%d%d", 1, 3, 5, 7, 9);

哈哈结果没问题,不过咱们可是要当程序员的人呐

int main()
{
	int i = 0;//在声明一个变量时记得给它赋值,这一部叫做变量的初始化
	while (i <= 10) {
		if (i % 2 == 1)  //符号“==”是判断是否相等,可以理解为数学中的等于号
		//"%"为取模,比如10%3=1,是取余数
			printf("%d", i);
		i++; //  i++的意思是先使用i自己的值,然后使自己的值加1,这里可以看成是  i = i + 1;
	}
	return 0;
}

该注意的点我已近在代码里注释了,如果还有不懂的可以在评论区提问,当然如果有问题也还请大佬们指出,YU同学先感谢大家了。

2.2 do while()语句

do while()语句与while语句区别不大,正如它的名字一样,它在运行是会提前执行一遍代码块里面的内容,然后再进行判断while()里面的真值,后面的就与while()语句是一样的,接下来给大家演示一下do while ()语句的格式:

    do {
        expression;
    }while (condition);

2.3 for 语句

代码格式:

for(expression1;condition;espression2)
{
    expression;
}

解释:

expression1 是给循环变量赋予初始值。(这时在开始循环的时候进行的,后面循环的时候不会再运行这个代码)

condition 是每次循环时判断的条件,若条件真值为真这继续运行代码块里面的语句,为假则会跳出for循环。

expression2 一般是对赋值变量的操作,让程序能达到自己想要的效果。

运行时:

程序会先进行对循环变量的赋值,而后进行条件判断,为真则执行后面的代码块,为假则退出循环,再执行完代码块后程序会通过condition2进行对循环变量的操作,然后进入下一次循环的判断阶段,以此类推。

for语句中表达式的省略

注:语句可以省,但分号不能省的,就算全省了也要写成for( ; ; )这样

  • 省略expression1

省略这一步则会跳过for循环时给循环变量赋值的部分,如果省略需要再for循环之前设定好循环变量的初始值。

  • 省略condition

condition为循环条件,当省略 它时系统会默认条件真值为1,即条件永远为真,这样程序会陷入死循环而崩溃,是不能省略的。

  • 省略expression2

可省略,省略完后系统将跳过执行代码块后对循环变量的操作,因次就要把对循环变量的操作放到代码块中了。

break在循环语句中的作用

程序运行时遇到break语句时不论当前条件的真值是否为假都会会直接跳出循环,下面给大家看个例子:

int main()
{
	int i = 1;
	for (i = 0; i<10; i++)
	{
		if (i == 6)
			break;
		printf("%d",i);
	}
	printf("\n%d", i);//前面打印一个空行
}

在这里插入图片描述

程序的结果是

012345 6

过程解释:在循环变量i=5时,if(i==6)条件不通过,并没有运行break语句,然后继续在屏幕打印5,之后通过i++使得i变成6,从而使得if(i==6)为真,程序运行时执行了break后跳出了循环,没有打印6和进行之后的循环,而后面的6时在循环外打印的,此时i=6,故打印出了一个六在下一行。

continue 在循环语句中的应用

continue 是使程序跳出本次循环去执行下一次循环

注:是跳出本次循环的执行代码块部分,前面讲过for循环在执行完代码块后还会有一步对循环变量的操作,这一部分是不会被跳过的。

下面看看效果:

对于while和do while

int main()
{
	int i = 0;
	while(i<10)
	{
		if (i == 6)
			comtinue;
		printf("%d",i);
		i++;
	}
	printf("\n%d", i);//前面打印一个空行
}

在这里插入图片描述

程序出现了在一直闪光标,出现死循环。

分析:当i=6时运行了continue跳出了本次循环进入下一次循环,可下一次循环还是有i=6(i++语句在continue之后,没有没运行),一直重复从而出现死循环。

对于for

int main()
{
	int i = 0;
	for (i = 0; i<10; i++)
	{
		if (i == 6)
			continue;
		printf("%d",i);
	}
	printf("\n%d", i);
}

在这里插入图片描述

这次打印少为12345789 10,少了一个6,但程序并没有出现死循环正是上面说说的,for循环中对循环变量处理的一部分不会被跳过。

总结:

今天给大家简单介绍了分支语句 if语句和switch语句,循环语句for语句,while语句,dowhile语句的使用方法和简单的运行流程以及continue 和break 在循环语句中的应用和细小差别。

到此这篇关于C语言超详细讲解循环与分支语句基础的文章就介绍到这了,更多相关C语言 循环与分支内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: C语言超详细讲解循环与分支语句基础

本文链接: https://www.lsjlt.com/news/145757.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • C语言超详细讲解循环与分支语句基础
    目录写在开始1. 分支语句1.1 if语句1.2 switch2. 循环语句2.1 while()语句2.2 do while()语句2.3 for 语句for语句中表达式的省略br...
    99+
    2022-11-13
  • C语言基础解析之分支与循环语句
    目录- if语句:if(表达式)悬空else问题- switch语句要注意的细节switch中的的default子句:- while循环语法结构- for循环语法结构- do whi...
    99+
    2022-11-12
  • C语言超细致讲解循环语句
    目录C语言循环家族while循环for循环dowhile循环C语言循环家族 家族成员有while语句,for语句和do....while语句。这些成员都能实现循环,但又各有特点。今天...
    99+
    2022-11-13
  • C语言超细致讲解分支语句
    目录前言C语言的语句爱选择的分支家族无所不能的大哥if另辟蹊径的小弟switch前言 从今天开始,我将不间断的为大家分享我学C的历程,今天为大家分享的是分支语句。 C语言的语句 C语...
    99+
    2022-11-13
  • C语言详细讲解循环语句的妙用
    目录一、循环语句分析二、do ... while 语句的循环方式三、while 语句的循环方式四、for 语句的循环方式五、break和 continue 的区别六、do 和 bre...
    99+
    2022-11-13
  • C语言循环与分支语句实例分析
    本篇内容主要讲解“C语言循环与分支语句实例分析”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C语言循环与分支语句实例分析”吧!写在开始0表示假,非0表示真。1. 分支语句分支语句也叫做条件选择语...
    99+
    2023-06-30
  • C语言超详细讲解双向带头循环链表
    目录一、双向带头循环链表的结构二、双向带头循环链表的函数接口1. 申请结点2. 初识化3. 打印4. 尾插尾删5. 头插头删6. 查找7. 中间插入和删除8. 判空及求链表长度9. ...
    99+
    2023-02-14
    C语言双向带头循环链表 C语言带头循环链表 C语言循环链表
  • C语言分支和循环详解
    目录前言一、什么是语句二、分支语句1.if语句2.switch语句三、循环语句1.while循环2.循环语句中的break与continue3.for循环总结前言 在本章,我会详述分...
    99+
    2022-11-12
  • C语言详细讲解if语句与switch语句的用法
    目录一、if 语句二、switch 语句三、错误提示一、if 语句 格式: if(写条件){输出内容}条件为真运行这个。 else {输出内容}否则输出这个。 代码: #includ...
    99+
    2022-11-13
  • C语言的分支和循环语句你了解吗
    目录1、什么是语句?2、分支语句(选择结构)2.1、if语句2.2、switch语句2.2.1、switch语句中的break2.2.2default子句3、循环语句3.1、whil...
    99+
    2022-11-13
  • C语言超详细讲解指针与结构体
    目录本节目标初识指针1、内存与地址2、变量的地址3、指针变量4、指针的使用5、指针变量的大小初识结构体1、什么是结构体2、结构体的定义3、结构体的使用本节目标 理解内存与地址的相关概...
    99+
    2022-11-13
  • C语言的分支和循环语句你真的了解吗
    目录什么是语句?分支语句if语句悬空elseif书写形式的对比练习switch语句default子句循环语句while循环while语句中的break和continue总结什么是语句...
    99+
    2022-11-13
  • Go语言基础for循环语句的用法及示例详解
    目录概述语法注意示例一  死循环,读取文件示例二  打印乘法表示例三  遍历字符串,数组,map 概述 for循环是一个循环控制结构,可以执行指定次数的...
    99+
    2022-11-12
  • C语言超详细讲解宏与指针的使用
    目录1、关于define2、初识指针(1)内存(2)示例(3)指针的使用示例(4)指针变量的大小1、关于define define是一个预处理指令,有两种用法,一种是用define定...
    99+
    2022-11-13
  • C语言详细分析讲解流程控制语句用法
    目录一、分支语句1.if语句2.switch语句二、循环语句1.for语句2.break和continue语句3.循环嵌套4.while和do…while语句一、分支语...
    99+
    2022-11-13
  • C语言超详细讲解数据结构中双向带头循环链表
    目录一、概念二、必备工作2.1、创建双向链表结构2.2、初始化链表2.3、动态申请节点2.4、打印链表2.5、销毁链表三、主要功能3.1、在pos节点前插入数据尾插头插3.2、删除p...
    99+
    2022-11-13
  • C语言超详细讲解栈与队列实现实例
    目录1.思考-12.栈基本操作的实现2.1 初始化栈2.2 入栈2.3 出栈2.4 获取栈顶数据2.5 获取栈中有效元素个数2.6 判断栈是否为空2.7 销毁栈3.测试3.1 测试3...
    99+
    2022-11-13
  • C语言超详细讲解指针的概念与使用
    目录一、指针与一维数组1. 指针与数组基础2. 指针与数组3. 一个思考二、指针与字符串三、指针和二维数组1. 指针数组与数组指针2. 指针数组3. 数组指针一、指针与一维数组 1....
    99+
    2022-11-13
  • C语言结构体嵌套与对齐超详细讲解
    目录嵌套结构体结构体内存对齐32位的操作系统64位的操作系统嵌套结构体 格式:typedef struct 结构体名 {struct 结构体名1 结构体变量名1;struct 结构体...
    99+
    2022-12-26
    C语言结构体嵌套 C语言结构体对齐 C语言结构体嵌套与对齐
  • C语言可变参数与内存管理超详细讲解
    目录概述动态分配内存重新调整内存的大小和释放内存概述 有时,您可能会碰到这样的情况,您希望函数带有可变数量的参数,而不是预定义数量的参数。C 语言为这种情况提供了一个解决方案,它允许...
    99+
    2023-01-02
    C语言可变参数 C语言内存管理
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作