【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)

目录

  • 一、分支语句:if、else、switch、case、default
    • ✨1.1、if、else 关键字
    • ✨1.2、switch、case、default 关键字
  • 二、循环语句:do、while、for、break、continue
    • ✨2.1、do、while、for 关键字
    • ✨2.1、break、continue 关键字
  • 三、return 关键字
  • 四、goto 关键字
  • 五、总结


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)。

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

你可能感兴趣的:(C语言,c语言,开发语言,C语言关键字)