高质量博主,点个关注不迷路🌸🌸🌸!
目录
前言: 书接上回,上回介绍了循环结构,以及实现循环结构的两种语句: for循环和while循环,于是乎,今天首先继续完善循环结构的学习: 学习有关循环控制的两个关键字: break 和 continue,接下来,我们将学习一个新的内容: C语言中函数的定义和使用!
I. 循环控制关键字
首先补充关键字的定义:
所谓关键字,是指在该程序语言下,被赋予特殊含义的词汇,例如for,if,while等等,这些关键字与普通的词汇的不同点在于,关键字是不可以被拿来当做变量名的,例如,不可以写:int if = xxx,因为它们有特殊的含义!!!
C语言中常见的关键字有:
> void:声明函数无返回值或无参数,声明无类型指针,显式丢弃运算结果
> char:字符型类型数据,属于整型数据的一种
> int:整型数据,通常为编译器指定的机器字长
> float:单精度浮点型数据,属于浮点数据的一种
> double:双精度浮点型数据,属于浮点数据的一种
> short:修饰int,短整型数据,可省略被修饰的int
> long:修饰int,长整形数据,可省略被修饰的int
> signed:修饰整型数据,有符号数据类型
> unsigned:修饰整型数据,无符号数据类型
> struct:结构体声明
> union:共用体声明
> enum:枚举声明
> typedef:声明类型别名
> sizeof:得到特定类型或特定类型变量的大小
> auto:指定为自动变量,由编译器自动分配及释放。通常在栈上分配
> static:指定为静态变量,分配在静态变量区,修饰函数时,指定函数作用域为文件内部
> extern:指定对应变量为外部变量,即在另外的目标文件中定义,可以认为是约定由另外文件声明
> const:与volatile合称“cv特性”,指定变量不可被当前线程/进程改变(但有可能被系统或其他线程/进程改变)
> return:用在函数体中,返回特定值(或者是void值,即不返回值)
> continue:结束当前循环,开始下一轮循环
> break:跳出当前循环或switch结构
> goto:无条件跳转语句
> if:条件语句 else:条件语句否定分支(与if连用)
> switch:开关语句(多重分支语句)
> case:开关语句中的分支标记
> default:开关语句中的“其他”分治,可选
> for:for循环结构,for(1;2;3)4;的执行顺序为1->2->4->3->2...循环,其中2为循环条件
> do:do循环结构,do 1 while(2);的执行顺序是1->2->1...循环,2为循环条件
> while:while循环结构,while(1) 2;的执行顺序是1->2->1...循环,1为循环条件
以上循环语句,当循环条件表达式为真则继续循环,为假则跳出循环。
回到我们的话题,我们要介绍两种用于循环控制的关键字:break 和 continue,它们的作用如下:
先说break关键字,从这个单词的本意出发,它的意思是打破,打断,果不其然,在C语言中,它的作用就是使得当前的循环终止,我们用一段代码演示一下:
#include<stdio.h>
int main(){
int a = 3;
while(a > 0){
a --;
if(a < 3){
printf("a = %d",a);
break;
}
}
return 0;
}
我们观察一下这段代码,首先a的值是3,并且a确实满足大于0,于是进入while循环,在循环体内,首先a执行自减操作,而后执行判断,如果a小于3,则打印a的值,而后执行break关键字,也即跳出循环,那根据我们的分析,最后打印的a应该是2,我们运行一下:
确实如此,因而break的作用就是跳出当前的循环(注意,演示用的while循环,但是对for循环同样有效)
接下来是continue关键字,依旧从词意出发,continue意为继续,那么在C语言中,该关键词的效果就是,退出本轮循环,而后直接进入下一轮循环,听起来有点绕,我们举个例子:
#include<stdio.h>
int main(){
int a = 3;
while(a > 0){
a --;
if(a == 2){
continue;
}
printf("a = %d\n",a);
}
return 0;
}
这段代码中,a初始值为3,于是进入while循环,首先自减,而后判断,当a等于2时,由于执行了continue关键字,跳出本轮循环,直接进入下一轮循环,也就是立即执行自减运算,于是乎,就不会继续执行下面的打印语句,即a = 2将不会被打印,我们运行代码:
果然,我们发现a = 2确实被continue给跳过了!!!
II. 函数的定义与使用
首先,我们先了解一下在C语言中,什么是函数:
C语言中,函数可以理解为可以完成一定功能的结构,例如我们看下面的一个例子:
int add(int a,int b){
return a + b;
}
这段代码定义了一个函数,这个函数叫add,它能够完成一个简单的加法运算,而且结构完整,因此我们称这类结构为函数。
那么函数的语法是怎样的呢?我们可以继续往下看:
这张图,初学者可以仔细看一看,上面把一个函数的所有组成成分都进行了图示,我们下面逐一讲解:
返回值类型: 这部分决定了这个函数最终返回的值是什么类型的,例如上图中,返回值类型是int,说明这个函数返回的值是一个int型
函数名: 这个不用多说,就是给函数起一个名字,通常起名字要起的有意义,和这个函数实际的功能一致,例如我的add函数,add意为加法,函数确实实现了加法操作
形式参数: 形式参数,就是指函数在定义的时候,括号里面写的参数,之所以叫形式参数,是因为此时并没有实际传入某个值,只有一个空的形式
返回操作: 由于返回值是int型的,因此我们返回的时候,需要返回int型的值
关于返回值类型,再补充一下: 除了int,之前学过的各种类型,例如double等等也可以作为返回值类型;另外当这个函数不需要返回值时,使用void,表示此函数没有返回值,例如:
void printHello(){
printf("hello");
}
接下来,解释一下返回值,到底返回到了哪里,我们看一个例子:
#include<stdio.h>
int add(int a,int b);
int main(){
int a = 3;
int b = 4;
int c = add(a,b);
printf("%d",c);
return 0;
}
int add(int a,int b){
return a + b;
}
通过这段代码,不难看出,返回值返回到了函数的调用地方,即我们把add放在代码的某个地方,那么它就会将值返回到此处,这个过程叫做函数的调用。
最后,我们讲解一下函数的声明与定义:
通常,在函数被定义之前,我们要先进行声明:
#include<stdio.h>
int add(int a,int b);
int add(int a,int b); 这就是声明语句,先声明,而后在下面定义函数:
#include<stdio.h>
int add(int a,int b);
int add(int a,int b){
return a + b;
}
这样是最规范的写法,否则有些编译器,可能会报错!!!
因此,我们可以总结: 函数的声明语句就是把函数的定义中的{ }的部分去掉,即可。
那到此为止,C语言函数也学习完成,下一站: C语言数组