当前位置:网站首页>【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语言三个基本结构的内容,另:博主是个新人,如有错误烦请各位大佬多多指正。
如果以上内容对您有所帮助就请点个赞呗!
边栏推荐
- 第7章 网络层第1次练习题答案(第三版)
- Quickly master concurrent programming --- the basics
- .NET-6.WinForm2.NanUI learning and summary
- Redis进阶 - 缓存问题:一致性、穿击、穿透、雪崩、污染等.
- mysql 的简单运用命令
- 数据库上机实验2 单表查询和嵌套查询
- tf.keras.utils.get_file()
- .NET-9. A mess of theoretical notes (concepts, ideas)
- 【MySQL8入门到精通】基础篇- Linux系统静默安装MySQL,跨版本升级
- TOGAF之架构标准规范(一)
猜你喜欢
matlab simulink欠驱动水面船舶航迹自抗扰控制研究
分布式事务——分布式事务简介、分布式事务框架 Seata(AT模式、Tcc模式、Tcc Vs AT)、分布式事务—MQ
Sword Point Offer Special Assault Edition ---- Day 2
剑指offer专项突击版 --- 第 4 天
基于flask的三方登陆的流程
数据库上机实验7 数据库设计
Unity Framework Design Series: How Unity Designs Network Frameworks
【MySQL8入门到精通】基础篇- Linux系统静默安装MySQL,跨版本升级
110 MySQL interview questions and answers (continuously updated)
有了MVC,为什么还要DDD?
随机推荐
精解四大集合框架:List 核心知识总结
太厉害了,终于有人能把文件上传漏洞讲的明明白白了
Sword Point Offer Special Assault Edition ---- Day 2
Quickly master concurrent programming --- the basics
wx.miniProgram.navigateTo在web-view中跳回小程序并传参
Refinement of the four major collection frameworks: Summary of List core knowledge
MYSQL下载及安装完整教程
MySQL-Explain详解
MySQL8.0.26安装配置教程(windows 64位)
Flink sink ES 写入 ES(带密码)
对list集合进行分页,并将数据显示在页面中
剑指offer专项突击版 ---- 第 6 天
踏上编程之路,你必须要干的几件事
ABC D - Distinct Trio (Number of k-tuples
The interviewer asked me TCP three handshake and four wave, I really
Kubernetes加入集群的TOKEN值过期
工作流编排引擎-Temporal
Information System Project Manager Core Test Site (55) Configuration Manager (CMO) Work
[mysql improves query efficiency] Mysql database query is slow to solve the problem
Anaconda配置环境指令