在上一篇文章中,我们认识和了解了C语言的构造,在这一篇文章中我们将进一步的认识C语言的有趣之处,同时丰富我们的知识宝库,且随我道来。
1.选择函数
在C语言中我们了解到了编程是需要由函数和基本的头文件所构成,而函数本身各式各样,就如同数学的一次和二次函数那般,C语言中也有不同的函数样式。在我们的日常生活中,时不时会做出选择,这也是我们这里所讲的选择函数。
(1)if,else if,else型选择函数
选择函数有两种,现在我们先讲解其中一种——if,else if,else函数。
#include <stdio.h>
int main()
{
int a = 0;//定义一个数
scanf("%d",&a);//给这个数输入一个值
//判断
if(a<=60)//如果a<=60,执行if语句,跳过else语句,如果不满足条件则跳过if
{
printf("不及格.\n");
}
else//如果if不成立则执行该语句
printf("及格.\n");
return 0;
}
这就是我们基础的选择函数,输入一个值,当这个值满足下面if,else if,和else哪个判断的要求时,则执行那个判断后的printf语句。
这时候就有同学要问了,我在这里只看到了if和else函数啊,else if函数呢?接下来我就来为此说明,当选择函数的选项多于或者等于3个的时候则需要使用else if函数。如下:
#include <stdio.h>
//输入成绩,范围为0~100
int main()
{
int a = 0;
scanf("%d",&a);
if(a<60&&a>=0)
{
printf("不及格.\n");
}
else if(a<=90&&a>60)
{
printf("及格\n");
}
else
{
printf("满分!!!\n");
}
return 0;
}
这就是if,else if和else函数的用法。这一道编程也是偏简单的选择函数类型,以后我们可能要通过if,else if和else 函数来解决更难的问题。
接下来我说几个if,else类型的选择语句可能会出错的问题:
1.在if和else if判断的()后面不需要加分号(;),否则代码可以运行,但是会出现错误,也可能是数据丢失。
2.在if,else类型的选择函数中,else if判断可以多个,但是if和else的判断语句只能有一个。
3.在判断语句中建议在输出语句外加上{},将多个语句构成单一语句,不然程序会直接报错。
这是因为在if判断的后面跟着两个printf,但是编译器并没有将第二个printf列入if判断语句中,导致后面的else判断不能和if语句形成相对应的形式,所以编译器会报错,这时候我们只要加入{},程序便可继续跑起来,这是我们需要小心的一个点。
(2)switch型选择函数
上面我们讲了一个选择函数,那么接下来我将为大家介绍另一个选择函数———switch。
switch相对于if,else型,它在一定程度中比if,else型更加简便。但是与之相对的,switch函数也有属于自己的弊端。那么接下来我将详细的讲解switch函数。
#include <stdio.h>
int main()
{
int a = 0;
scanf("%d",&a);
switch(a)//输入a的值1,2,3
{
case 1://判断
printf("合格\n"); break;
case 2:
printf("不合格\n"); break;
case 3:
printf("重修\n"); break;
}
return 0;
}
上图就是我们的switch选择函数了,可以看出来,如果对比if类型的选择语句,switch看起来更加的简单明了。
switch后的括号里的a,便是我们输入的a,在这个函数中,a可以输入1,2,3。然后我们就可以到case后面对应的数字处找到我们要打印和输出的语句。类似switch(1)的时候,这个时候我们就去下面寻找case 1:的该处的printf并将它打印。
同时,我们在这里看到了一个新的词语———break。break的作用是用于跳出switch语句,在执行printf后,break跳出switch,最后return 0打印出结果。
如果在第一个printf语句结束之后不加break的话,函数会自动跳之下一行继续执行程序,直到遇到break结束程序的执行——如上图2。
所谓有优势就也有不足之处。在运行switch函数的时候要注意一个点。
注:case 后面只能跟常量!而且case和常量之间必须要有空格的存在,不然程序会报错。
那如果程序输入的值十分的大或者输入的值是我们所不想要的,那这个时候我们要怎么运用switch呢?
接下来我们就要利用switch的另一个词——default。
当我们输入的值在case 后面的常量没有的时候,就执行default中的语句。
以上2种便是我们的选择函数。
2.函数
为什么到了这里要重新讲解函数呢?因为这个函数和我们之前了解的函数有所不同。
如果现在给你一个题目让你计算a+b的值并输出。最简单的便是直接计算,类似:
#include <stdio.h>
{
int a = 0;
int b = 0;
int c = 0;
scanf("%d%d",&a,&b);//输入a,b的值
c = a + b;//计算a+b的值
printf("%d\n",c);
}
而现在我们将使用另外的一种方法,应用一个函数进行计算
int Add(int x,int y)//第一个int表示返回值为整形,第二和第三个int表示输入的值为整形
{
int z = x + y;
return z;
}
#include <stdio.h>
{
int a = 0;
int b = 0;
int c = 0;
scanf("%d%d",&a,&b);
c = Add(a,b);
printf("%d\n",c);
}
大家会发现,第二种代码要写的代码函数会比第一种代码多输入几行,既然这样为什么还要用第二种方法呢?
我们需要打开格局。如果题目要求计算 a+b和c+d的各值的值呢?这个情况下我们如果使用第一种方法的话我们需要再次打印* = *+*。而如果使用第二种的话我们就不想要这种麻烦的过程。
那Add的作用是什么呢?
Add就类似工厂,输入a和b之后在Add内进行加工,最后计算出a+b的值并赋给num,最后输出num。这就是我们函数的应用。
结尾:
在这一次的博客中我们更深入的了解了C语言,并且我希望我所书写的内容对他人认识C语言有所帮助。