if,else if和 else构成的分支结构
首先介绍C语言的分支结构
分支结构是C语言之中的重要结构,一般由if,else if和else构成,比如以下代码:
#include<stdio.h>
int main()
{
int a = 0, b = 0;
scanf("%d%d",&a, &b);
if (a > b)
{
printf("haha\n");
}
else if (a < b)
{
printf("hehe\n");
}
else
{
printf("heihei\n");
}
return 0;
现在我们在VS的调试窗口里面输入几组数据,如下图:
我们发现,我们输入的数字大小能决定代码的运行结果。那么,这段代码是怎么运行的呢?
关键来了!首先,我们要了解if怎么使用。if(表达式) 表达式; 或者 if(表达式){表达式1;表达式2;}但是这样子写还是太抽象了。所以接下来,对以上代码增加注释,使得便于阅读:
#include<stdio.h>
int main()
{
int a = 0, b = 0;//创建并初始化变量a,b.
scanf("%d%d",&a, &b);//输入函数,需要引用头文件stdio.h
if (a > b)//使用方式是if(表达式) 表达式或者 if(表达式){表达式1;表达式2,...表达式n;}
{//此处的表达式是 a > b ,如果表达式成立,则表达式返回数值 1,如果不成立,返回0.
//在C语言中,若把表达式写成1或其他非零数值,则为真;若把表达式写成 0 ,则为假
printf("haha\n");
}
else if (a < b)
{//此处用到了else if,和只用if相比,当if和else if连用时,只要一个if被成功执行,其他if会统统不干,这个东西后面再讲。
printf("hehe\n");
}
else
{//当if或else if和else连用时, 若if都不能成功执行,则执行else控制的语句。
printf("heihei\n");
}
return 0;
下面开始介绍else if的具体使用方法
C语言中,在if和else if连用时,若有 if 和多个 else if 语句所接条件表达式同时成立,则从上开始执行第一个满足条件的if或else if语句,而且只执行第一个满足条件的if或else if语句。
关于多重if嵌套
这是一个很有用且很烦的东西,举一个简单的例子加以说明:
#include<stdio.h>
int main()
{
int a = 0;
scanf("%d", &a);
if (a - 1 >= 0)
if (a + 3 > 10)
if (a - 1 < 10)
printf("测试结果1");
else
printf("测试结果2");
else
printf("测试结果3");
else
printf("测试结果4");
return 0;
}
VS编译器直接为我们展示了多个if嵌套中if和else的关系,从这个例子中,我们可以发现,若要寻找多个if嵌套之中的else与哪个if相关,就从最内层的if开始找else,这样可以很方便的理清各个if和else之间的关系。在搞清了这些代码的运行规律后,我们也可以往里面塞很多else if语句。tips:这代码很喜欢出现在某些教科书上。
循环语句介绍
通常,C语言之中的循环可以使用这三种:for(;;);while();do{}while()。其中,对于循环次数明确的案例,通常使用for;对于不明确的,通常使用while或者do{}while。循环,就是字面意思。下面,先介绍for循环:
#include<stdio.h>
int main()
{
//for的用法是 for(初始化部分;判断部分;操作部分)语句或者 for(初始化部分;判断部分;操作部分){语句1;语句2;...语句n;}
//下面举例说明:
for (int i = 1; i <= 10; i++)//先创建整型变量i并赋值为1,再判断i是否小于等于10,若判断成功,则执行{}内语句,执行完{}内语句后,i增加1,然后继续判断i是否小于等于10,如此循环到i大于10
{ //若判断失败,不进行循环。
//若直接给判断部分写成非0数据,判断部分永远为真,for循环会一直进行直到找到能跳出循环的语句。
printf("%d ", i);
}
return 0;
}
运行结果如下图:
介绍完for,继续介绍while和do{}while
#include<stdio.h>
int main()
{
int i = 1;//while用法是 while(表达式) 表达式; 或者 while(表达式){表达式1;表达式2;...表达式n;}例子如下
while (i <= 10)
{
printf("%d ", i);
i++;
}
return 0;
}
运行结果是
还有一个do while没介绍,下面开始介绍do while循环结构。
#include<stdio.h>
int main()
{
int i = 10;
do{
printf("一只写代码的菜鸟");
} while (i < 0);
return 0;
}
执行结果是
我们发现,我们写的条件表达式 i < 0的判断应该失败了,但是 printf这个函数还是被成功调用了,从上述例子可以看出,do while会先执行一次循环部分的内容,再进行判断。