当前位置:网站首页>【C语言3个基本结构详解——顺序、选择、循环】
【C语言3个基本结构详解——顺序、选择、循环】
2022-07-31 05:09:00 【悄悄卷s所有人】
前言
一下是博主个人对C语言三种基本结构的经验总结,如果觉得有用,记得点赞哦!
一、顺序结构
顾名思义,顺序结构就是一步一步的按顺序往下执行程序.
1.结构框图
2.举例代码
#include<stdio.h>
int main()
{
printf("1\n");
printf("2\n");
printf("3\n");
return 0;
}
3.代码讲解
这是最简单的顺序结构,程序从main函数开始,按顺序一步一步的往下执行,分别打印出1,2,3然后结束程序。
二、选择结构
选择结构包括if语句和switch语句。
(一)、if语句
if语句既能实现单分支选择,又能实现多分支选择。
(1).注意
1.if语句的括号后面不加“;”
2.建议if语句的语句块,哪怕只有一条语句,也要加上"{}",既可以增强代码的可读性,又可以防止出现多条语句时忘记加“{}”
3.在c语言中,默认0表示假,非0表示真(即所有不是0的数都表示真)
1.if语句单分支选择
if(条件表达式)
{
语句块;
}
(1).代码举例
#include<stdio.h>
int main()
{
int i = 5;
if (i < 10)
{
printf("%d\n", i);
i += 10;/*这条语句的意思是:i=i+10*/
}
if (i > 10&&i<20)
{
printf("%d\n", i);
}
if(i>20)
{
printf("%d\n", i);
}
return 0;
}
(2).程序执行流程图
(3).代码讲解
程序开始,输入i=5,经过条件1,因为5<10,所以条件为真,执行printf(“%d\n”,i)语句,然后执行i=i+10;再经过条件2,,此时i=15,因为10<15<20,所以条件为真,执行 printf(“%d\n”,i)语句;再经过条件3,因为15<20,所以条件为假,直接跳到程序结束。
2.if语句多分支选择
多个语句选择一个语句进行。
if(表达式)
{语句块;}
else if(表达式)
{语句块;}
else
{语句块;}
(1).代码举例
#include<stdio.h>
int main()
{
int i = 15;
if(i<10)
{
printf("%d\n", i);
i += 10;
}
else if (i >= 10 && i < 20)
{
printf("%d\n", i);
i += 10;
}
else
{
printf("%d\n", i);
}
return 0;
}
(2).程序执行流程图
(3).代码讲解
程序开始,输入i=15,经过if语句,因为15<10,所以条件为假,所以跳转到else if,因为10<15<20,所以条件为真,执行printf(“%d\n”,i)语句,然后执行i=i+10,这里因为是先执行printf(“%d\n”,i)语句,然后执行i=i+10,所以打印 在屏幕上打印的是15而不是25;执行完else if语句块后,程序直接跳转到程序结束。
(二)、switch语句
switch(条件表达式)
{
case 0:
语句块;
case 1:
语句块;
…
default:
语句块;
}
(1).注意
1.switch语句的括号后面不加“;”
2.switch语句的括号里面只能是整型常量表达式
3.case语句只是相当于一个入口,不用严格按照数字排序,如:case 3可以在case 1和case 2前面
4.switch结构中,如果没有break语句,则程序会从case 语句入口进入,然后逐条往下执行每一条语句;如果有break 语句,则程序从case 语句进入,然后逐条往下执行每一条语句,当遇到break 语句后就会直接跳出switch 结构,不再执行 break 语句之后的任何语句
(2).代码举例
#include<stdio.h>
int main()
{
int i = 3;
switch (i)
{
case 0:
printf("a\n");
case 3:
printf("d\n");
case 1:
printf("b\n");
break;
case 2:
printf("c\n");
default:
printf("m\n");
}
return 0;
}
(3).程序执行流程图
(4).代码讲解
程序开始,输入i=3,选择从case 3 进入,执行printf(“d\n")在屏幕上打印出字母d,然后往下执行进入case 1,执行printf(“b\n")在屏幕上打印出字母b,再执行break 语句跳出switch 语句,然后结束程序。
三、循环结构
循环结构包括for、while、do…while三种循环。
(1).注意
1.for、while、do…while等语句的括号后面不加“;”
2.在c语言中,默认0表示假,非0表示真(即所有不是0的数都表示真)
3.循环结构中,如果有break语句,则程序会直接跳出循环 结构,不再执行 break 语句之后的任何语句;如果有continue 语句,则程序不再执行continue后的语句,而是结束本次循环的回到表达式部分,满足循环条件则开始下一次循环,否则结束循环。
(一)、while循环
while(表达式)
{
循环体;
}
(1).代码举例
#include<stdio.h>
int main()
{
int n = 0;
int m = 0;
while (m<10)
{
m++;
n++;
printf("\n第 %d 次:",m);
if (m == 3)
{
continue;
}
if (m == 6)
{
break;
}
printf("%d", n);
}
}
(2).程序执行流程图
(3).代码讲解
程序开始,输入n=0,m=0,因为m=0小于10,所以条件为真进入循环,当m=3之前,程序循环执行m++、n++、printf(“\n第 %d 次:”,m)、printf(“%d”, n)等几条语句;当m=3时,语句if(m== 3)为真,执行continue 语句,而在continue 语句之后的printf(“%d”, n)语句不再执行,直接跳到判断m是否小于10,条件为真继续循环;当m=6时,语句if(m==6)为真,执行break 语句,跳出本次循环,程序结束。最终在屏幕上打印出第1、2、4、5次的数字。
(二)、for循环
for(表达式1;表达式2;表达式3)
{
循环体;
}
(1).代码举例
#include<stdio.h>
int main()
{
int i = 0,n=0;
for (i = 0; i <= 10; ++i)
{
printf("i=%d\n", i);
if (i == 5)
{
continue;
}
if (i == 6)
{
break;
}
printf("n=%d\n", n);
++n;
}
return 0;
}
(2).程序执行流程图
(3).代码讲解
程序开始,输入i=0,n=0,因为i=0<10,所以就条件为真进入循环,在n=5之前,程序循环执行printf(“i=%d\n”, i);、printf(“n=%d\n”, n);、++n;、++i;等语句;当i=5时,语句if(i== 5)为真,执行continue 语句,而在continue 语句之后的printf(“n=%d\n”, n);、++n;两条语句不在执行,直接跳到++i语句继续循环;当i=6时,语句if(i==6)为真,执行break 语句,跳出本次循环,程序结束。最终会在屏幕上打印出 i =1~6的值和 n =1 ~5的值。
(三)、do…while循环
do
{
循环体;
}
while(表达式);
(1).注意
1.do…while循环判断条件再循环的最后,所以do…while循环最少循环一次。
2.do…while循环的while后面的括号之后要加" ; "
(2).代码举例
#include<stdio.h>
int main()
{
int n = 0;
int m = 0;
do
{
m++;
n++;
printf("\n第 %d 次:",m);
if (m == 3)
{
continue;
}
if (m == 6)
{
break;
}
printf("%d", n);
}while (m < 10);
}
(3).程序执行流程图
(4).代码讲解
程序开始,输入n=0,m=0,进入循环,循环执行一次,然后再判断循环条件,因为m=0小于10,所以条件为真继续循环,当m=3之前,程序循环执行m++、n++、printf(“\n第 %d 次:”,m)、printf(“%d”, n)等几条语句;当m=3时,语句if(m== 3)为真,执行continue 语句,而在continue 语句之后的printf(“%d”, n)语句不再执行,直接跳到判断m是否小于10,条件为真继续循环;当m=6时,语句if(m==6)为真,执行break 语句,跳出本次循环,程序结束。最终在屏幕上打印出第1、2、4、5次的数字。
总结
以上就是我个人总结的C语言三个基本结构的内容,另:博主是个新人,如有错误烦请各位大佬多多指正。
如果以上内容对您有所帮助就请点个赞呗!
边栏推荐
猜你喜欢
The interviewer asked me how to divide the database and the table?Fortunately, I summed up a set of eight-part essays
Anaconda配置环境指令
Distributed transaction processing solution big PK!
【MySQL8入门到精通】基础篇- Linux系统静默安装MySQL,跨版本升级
剑指offer基础版--- 第23天
C语言实验三 选择结构程序设计
剑指offer基础版 ---- 第26天
实验8 DNS解析
MYSQL一站式学习,看完即学完
Centos7 install mysql5.7
随机推荐
a different object with the same identifier value was already associated with the session
Interviewer, don't ask me to shake hands three times and wave four times again
Temporal对比Cadence
数据库学习笔记
Simple command of mysql
tf.keras.utils.get_file()
剑指offer基础版 --- 第22天
C语言实验三 选择结构程序设计
Kubernetes加入集群的TOKEN值过期
MySQL (updating)
Interviewer: If the order is not paid within 30 minutes, it will be automatically canceled. How to do this?
剑指offer专项突击版 ---- 第1天
剑指offer基础版 ---- 第27天
Information System Project Manager Core Test Site (55) Configuration Manager (CMO) Work
剑指offer基础版--- 第23天
Data set partitioning and cross-validation
分布式事务处理方案大 PK!
C语言教程(二)-printf及c自带的数据类型
Workflow番外篇
剑指offer基础版 --- 第21天