【C语言 | 关键字】C语言32个关键字详解(3)——结构语句(if、else、switch、case、default、do、while、for、break、continue、return、goto)

😁博客主页😁:🚀https://blog.csdn.net/wkd_007🚀
🤑博客内容🤑:🍭嵌入式开发、Linux、C语言、C++、数据结构、音视频🍭
🤣本文内容🤣:🍭介绍标准C语言的32个关键字🍭
😎金句分享😎:🍭有机会一定要试试,其实试错的成本并不高,而错过的成本很高🍭

C语言32个关键字详解(1):数据类型部分(char、short、int、long、float、double、struct、union、enum、void)
C语言32个关键字详解(2):修饰类型部分(auto、signed、unsigned、static、extern、const、register、volatile)
C语言32个关键字详解(3):结构语句部分(if、else、switch、case、default、do、while、for、break、continue、return、goto)
C语言32个关键字详解(4):其他(typedef、sizeof)


C语言的关键字有32个,我将它主要分成下面四个方面来介绍。

功能关键字
类型(10个)char、short、int、long、float、double、struct、union、enum、void
修饰类型(8个)auto、signed、unsigned、static、extern、const、register、volatile
结构语句(12个)if、else、switch、case、default、do、while、for、break、continue、return、goto
其他(2个)typedef、sizeof

前面介绍了char、short、int、long、float、double、struct、union、enum、void、auto、signed、unsigned、static、extern、const、register、volatile

这篇文章主要介绍if、else、switch、case、default、do、while、for、break、continue、return、goto这几个与结构语句相关的。

在这里插入图片描述

🎄一、分支语句:if、else、switch、case、default

✨1.1、if、else 关键字

if、else 这两个关键字在C语言中的作用是用了组成分支语句if(){}else{}的。其结构组合主要有以下几种:

// 第一种:单纯的 if 语句
if(条件){
...
}

// 第二种:if ... else ...语句
if(条件){
...
}
else{
...
}

// 第三种:if ... else if...语句
if(条件){
...
}
else if{
...
}

// 第四种:if ... else if... else... 语句
if(条件){
...
}
else if{
...
}
else{
...
}

几个注意点:

  • 1、C 语言规定: else始终与同一括号内最近的未匹配的 if 语句结合。
  • 2、if语句判断bool变量时,尽量写成下面代码的第三种,让人直观地知道bTestFlag是一个bool变量。
    第一种:会给人一个错觉,bTestFlag是整型变量;
    第二种:C语言种,FLASE的值被定义为0,但只要非0都是TRUE,也不特别恰当;
bool bTestFlag = FALSE;//想想为什么一般初始化为 FALSE 比较好?
if(bTestFlag == 0); if(bTestFlag == 1); // 第一种:
if(bTestFlag == TRUE); if(bTestFlag == FLASE);// 第二种:
if(bTestFlag); if(!bTestFlag);			// 第三种方式
  • 3、浮点型变量与“零值”进行比较时,应该判断是否落在一个区间范围内,而不是直接用==比较。因为 floatdouble 类型的数据都是有精度限制的,这样直接与 0.0 比较容易出错。用下面代码第二种写法。
float fTestVal = 0.01if(fTestVal == 0.0); if(fTestVal != 0.0);
2if((fTestVal >= -EPSINON) && (fTestVal <= EPSINON)); //EPSINON 为定义好的精度。
  • 4、指针变量与“零值”进行比较时,应当与NULL比较,让人直观清楚该变量是指针。采样下面代码第三种写法:
int * p = NULL;//定义指针一定要同时初始化,指针与数组那章会详细讲解。
1if(p == 0); if(p != 0);
2if(p); if(!p);
3if(NULL == p); if(NULL != p);
  • 5、注意不要直接在if语句后写分号,否则该分支什么也没有执行。if(NULL != p)等同于下面代码:
if(NULL != p)
{
	;
}
  • 6、先处理正常情况,在处理异常情况。因为正常情况发生的概率比较大,放在前面可以减少判断。

✨1.2、switch、case、default 关键字

一般情况下,switch、case、default三个关键字一起使用,构成switch语句,其语句形式如下:

switch(表达式){
case 常量表达式 1: 语句 1;
case 常量表达式 2: 语句 2;case 常量表达式 n: 语句 n;
default : 语句 n+1;
}

几个注意点:

  • 1、每个case语句的结尾都要加break;,否则会造成多个分支重叠;
  • 2、最后必须要使用default分支,即使用不到也要保留default : break;
  • 3、case后面的值只能是常量或者常量表达式;
  • 4、先处理正常情况,在处理异常情况。因为正常情况发生的概率比较大,放在前面可以减少判断。
  • 5、case语句中,如果要定义变量,必须使用大括号{}包含起来,如:
switch(表达式){
	case 常量表达式 1:
	{
		int i = 0;
	}
	default : 
		break;;
}

在这里插入图片描述

🎄二、循环语句:do、while、for、break、continue

✨2.1、do、while、for 关键字

C语言中循环语句有3种:while语句do - while语句for语句
do、while、for三个关键字的作用是:用来编写这三种循环语句:

// while语句一般形式
while(表达式) 语句;

// do-while语句一般形式
do
	语句
while(表达式);

// for语句一般形式
for(表达式 1; 表达式 2; 表达式 3) 语句

几个注意点:
1、在多重循环中,如果有可能,应当将最长的循环放在最内层,最短的循环放在最外层,以减少 CPU 跨切循环层的次数。
2、不能在 for 循环体内修改循环变量,防止循环失控。


✨2.1、break、continue 关键字

break 关键字在循环语句种表示终止本层循环,在case语句中表示跳出switch语句。

continue 关键字表示终止本次(本轮)循环,只在循环语句中使用,不能再其他地方使用。


在这里插入图片描述

🎄三、return 关键字

return 关键字用来终止一个函数并返回其后面跟着的值。

return (Val); 语句中的括号可以省略。但一般不省略,尤其在返回一个表达式的值时。

return;语句不带任何返回值也是被允许的。单纯的终止函数。

注意不要返回局部指针变量,也就是不可返回指向栈内存的指针;
栈,就是那些由编译器在需要的时候分配,在不需要的时候自动清除的变量的存储区。里面的变量通常是局部变量、函数参数等。

char * Func(void)
{
char str[30];return str;// 错误:str是Func函数里定义的,函数结束后会销毁该内存,不可被返回
}

在这里插入图片描述

🎄四、goto 关键字

goto 关键字用了构成goto语句,是一种无条件跳转语句。其使用格式为:goto 语句标号;

下面代码演示goto 语句

static int func(ui_msg_t *pmsg)
{
	int ret = fun();	
	if(ret < 0)
	{
		goto __error;
	}
	return 0;

__error:
	//Printf(">>>>>>>>>>>>>> error.\n");
	return -1;
}

goto语句 通常不用,主要因为它将使程序层次不清,且不易读;

一些书籍主张慎用或禁用goto语句,所以读者可以不需要太关注这个关键字。

在这里插入图片描述

🎄五、总结

本文主要介绍C语言32个关键字——结构语句部分(if、else、switch、case、default、do、while、for、break、continue、return、goto)。

在这里插入图片描述
如果文章有帮助的话,点赞👍、收藏⭐,支持一波,谢谢 😁😁😁

  • 10
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 11
    评论
【优质项目推荐】 1、项目代码均经过严格本地测试,运行OK,确保功能稳定后才上传平台。可放心下载并立即投入使用,若遇到任何使用问题,随时欢迎私信反馈与沟通,博主会第一时间回复。 2、项目适用于计算机相关专业(如计科、信息安全、数据科学、人工智能、通信、物联网、自动化、电子信息等)的在校学生、专业教师,或企业员工,小白入门等都适用。 3、该项目不仅具有很高的学习借鉴价值,对于初学者来说,也是入门进阶的绝佳选择;当然也可以直接用于 毕设、课设、期末大作业或项目初期立项演示等。 3、开放创新:如果您有一定基础,且热爱探索钻研,可以在此代码基础上二次开发,进行修改、扩展,创造出属于自己的独特应用。 欢迎下载使用优质资源!欢迎借鉴使用,并欢迎学习交流,共同探索编程的无穷魅力! 基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip 基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip 基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wkd_007

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值