当前位置:网站首页>【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语言三个基本结构的内容,另:博主是个新人,如有错误烦请各位大佬多多指正。
如果以上内容对您有所帮助就请点个赞呗!
边栏推荐
- Element concatenation operations in numpy and pytorch: stack, concatenat, cat
- mysql5.7.35安装配置教程【超级详细安装教程】
- Minio upload file ssl certificate is not trusted
- Kubernetes加入集群的TOKEN值过期
- Go中间件
- The TOKEN value of Kubernetes joining the cluster expires
- 分布式事务——分布式事务简介、分布式事务框架 Seata(AT模式、Tcc模式、Tcc Vs AT)、分布式事务—MQ
- 详解扫雷游戏(C语言)
- Unity mobile game performance optimization series: performance tuning for the CPU side
- The interviewer asked me TCP three handshake and four wave, I really
猜你喜欢
随机推荐
【MySQL8入门到精通】基础篇- Linux系统静默安装MySQL,跨版本升级
质量小议12 -- 以测代评
剑指offer基础版 --- 第24天
[mysql improves query efficiency] Mysql database query is slow to solve the problem
2022-07-30:以下go语言代码输出什么?A:[]byte{} []byte;B:[]byte{} []uint8;C:[]uint8{} []byte;D:[]uin8{} []uint8。
Flask 的初识
精解四大集合框架:List 核心知识总结
Reference code series_1. Hello World in various languages
C语言教程(二)-printf及c自带的数据类型
Shell重油常压塔模拟仿真与控制
Go中间件
面试官竟然问我怎么分库分表?幸亏我总结了一套八股文
数据库学习笔记
“档次法”——用于物品体积分布不均匀的01背包问题的求解方法
Sword Point Offer Special Assault Edition ---- Day 2
Information System Project Manager Core Test Site (55) Configuration Manager (CMO) Work
Swordsman Offer Special Assault Edition ---- Day 6
Flask-based three-party login process
Unity resources management series: Unity framework how to resource management
torch.normal函数用法