c语言将现实中的逻辑关系抽象出来了三种结构,分别为顺序结构,分支结构,循环结构。
以日常生活为例,我今天早起要刷牙,洗脸,上厕所,这是顺序结构。我中午可能吃面也可能吃饭,这是分支结构。我今天要连续的上完4节课,这是循环结构。
通常情况下,在代码块中的内容都是以顺序结构的逻辑运行的。顺序结构的特点将每一行的程序从上至下的顺序依次执行。如下例代码。
int main()
{
int x, y;
x = 10, y = 20;
return 0;
}
我们用顺序结构的逻辑来看,程序首先将x和y进行声明,接着再将这两个变量赋值。如果我们将这个顺序颠倒,会发现程序报错
编辑
由此可以看出C语言的顺序结构的特点。从main函数进去,按从上往下的顺序依次执行。
分支结构分为单分支结构和多分支结构,c语言用于分支结构的语句有if()语句,switch()语句。if语句的框架为
if(条件表达式)
{
语句;
}
我们先来看一个简单的单分支结构。
int main()
{
int i;
scanf("%d", &i);
if (i == 5)
{
printf("hello,");
}
printf("world");
return 0;
}
这段代码的逻辑关系为,如果i的值等于5,则符合了if语句中的条件表达式,此时程序会进入if当中的语句,打印hello,离开if语句后,打印world,于是运行的结果为(hello,world).
如果i的值不满足if当中的条件表达式,则程序跳过if当中的语句,只执行打印world。此时结果为(world)
多分支结构。
多分支循环即在多个分支路径中,选择一个符合条件的分支进行程序运行,我们可以用switch语句来构成多分支结构,可以用if语句来构成多分支结构。接下来我们重点说明if构成的多分支结构。
首先,我们要清楚if语句是如何构成多分支循环的,如果我们将多个if语句组合在一起是多分支语句吗?
int main()
{
int x, y, z;
x = 3, y = 4,z = 5;
if (x = 3)
{
printf("关注\n");
}
if (y = 4)
{
printf("博主\n");
}
if (z = 5)
{
printf("谢谢喵\n");
}
return 0;
}
我可以发现,程序将每个if语句的内容都打印了出来,但是根据多分支结构的定义,我们只需要进入其中一个分支即可,所以这种方法是无法构成多分支结构的。
正确的方法是在除第一个分支以外的分支使用else if()语句,这样程序在选择分支路径时,只会选择其中一个符合条件的分支(当满足条件的分支又多个时,最终选择和有顺序有关)。
int main()
{
int x, y, z;
x = 3, y = 4,z = 5;
if (x = 3)
{
printf("关注\n");
}
else if (y = 4)
{
printf("博主\n");
}
else if (z = 5)
{
printf("谢谢喵\n");
}
return 0;
}
我们可以发现此时程序只进入了其中一个分支。
我们以跑步为例,如果我在操场中跑3圈,首先我会判断我是否跑够了三圈,如果不够,则在跑一圈,如果到了三圈,我就停止跑步了。
所以循环结构的逻辑是这样的,当程序进入循环结构时,判断是否符合循环条件,若符合条件,则进去执行循环当中的语句,并当完成本次循环时,再次判断循环条件。当条件已经不满足进入循环的条件时,程序跳出循环。
我们以while循环举例,while循环的构架为while(条件表达式)
{
语句;
}
我们以下面代码为例。
int main()
{
int i = 1;
while (i <= 10)
{
printf("%d ", i);
i++;
}
return 0;
}
当i符合循环条件,进入循环,执行循环体内的代码,随着一次次执行代码,i数值越来越大,当i不符合循环条件时,跳出循环。程序运行结果如下
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。