1、程序结构:在c语言程序中,共有三种程序结构。 顺序结构、选择结构(分支结构)、环结构;
顺序结构)从头到尾一句一句地执行,执行到底;
选择结构:到达某个节点后,根据判断结果,决定之后向哪个分支方向执行;
循环结构:循环结构有循环体,循环体有编码。 对循环结构来说,重要的是根据判断的结果,决定循环体执行多少次;
注意:逻辑上,有一种bool类型(也称为boolean类型或布尔类型),只具有真和假两个值。 c语言判定式的最终值为bool型,该判定式的bool值决定选择结构如何选择、循环结构如何循环
2、顺序结构:顺序结构简单,一般我们遇到的除选择结构和循环结构外,都是顺序结构;
3、选材结构: c语言中常用的选材结构主要有以下两种:
(1)引入if else )关键字) ifelseelse if
if(bool值(如果bool值为真,则执行代码段1,否则执行代码段2
{
代码段1
}
else
{
代码段2
}
如果if(bool值1 )/bool值1为真,则执行代码段1,否则判断bool值2是否为真
{
代码段1
}
elseif(bool值2 )如果bool值2为真,则执行代码段2,否则直接执行代码段3
//开头的if和结尾的else都只有一个,但是中间的else if可以有多个
代码段2
}
else
{
代码段3
}
#包含
输入主(语音) )。
{
int a、b、max;
a=;
b=;
if(ab )//判断式
{
max=a;
printf (真.n );
}
ELSEif(a==b ) ) )。
{
max=a;
printf(a==b.(n );
}
else
{
max=b;
printf (假.n );
}
printf(max=%d.n )、max );
返回;
}
)2)引入switch case关键字(switchcasebreakdefault )
switch (变量)//执行此语句时,变量的值是已知的
执行{ //switch case语句时,会尝试按该变量值与每个case后面的常量进行顺序比较,以找到第一个匹配项,并在找到匹配项后,
case常量1: //执行与该case对应的代码段,如果找不到,则继续下一个case直到default
代码段1; //如果前面的case不匹配,则默认匹配。
布雷克;
case常数2:
代码段2;
布雷克;
.
默认:
代码段n;
布雷克;
}
注:第一,在case中必须是常数,必须是整形;
第二,一般来说,每个case的代码段之后都需要break;
第三,case之后通常有default。 语法上允许没有default,但建议您在编写代码时一定要写。
//结构化设计-选择结构示例代码switch case演示
#包含
输入主(语音) )。
{
int num;
num=;
是交换机(num )
{
case :
打印机(a (n ) );
布雷克;
case :
打印机(b (n ) );
布雷克;
case :
打印机(c (n ) );
布雷克;
case :
printf(d(n );
布雷克;
默认:
printf(-(n );
布雷克;
}
返回;
}
)3) if else与交换机情况的区别: if else适用于比较条件复杂但分支较少的情况。 交换机cas
e适合那种对比条件简单,但是分支较多的情况;通常的做法是:在适合使用switch case的情况下会优先使用switch case,如果不适合则使用if else;
4、循环结构:C语言中常用的循环结构主要有以下三种:
(1) for:
for (循环控制变量初始化; 循环终止条件; 循环控制变量增量)
{
循环体
}
循环执行步骤:第一,先进行循环控制变量初始化;
第二,执行循环终止条件,如果判断结果为真,则进入第三步;如果为假则循环终止并退出;
第三,执行循环体;
第四,执行循环控制变量增量,转入第二步;
注:for循环()中的三部分除了循环终止条件外,其他两部分都可以省略,但标准的for循环中,应该把循环控制变量的初始化,增量都放在()当中,并且在循环体中绝对不应该更改循环控制变量;
// 计算1+2+3+····+10
#include
int main(void)
{
int i, sum;
printf("i = %d.n", sum);
for (i=,sum=; i<=; i++)
{
sum += i;
}
printf("sum = %d.n", sum);
return ;
}
(2) while:
循环控制变量初始化
while(循环终止条件)
{
循环体
循环控制变量增量
}
循环执行步骤:第一,先进行循环控制变量初始化(在while之前);
第二,判断循环终止条件,如果判断结果为真,则进入第三步;如果为假则不执行循环体;
第三,执行循环体;
第四,执行循环控制变量增量,转入第二步;
// 计算100以内所有奇数的和
#include
int main(void)
{
int i, sum;
i = ;
sum = ;
while(i < )
{
printf("i = %d.n", i);
sum += i;
i += ;
}
printf("sum = %d.n", sum);
return ;
}
(3) do while:
循环控制变量初始化
do
{
循环体
循环控制变量增量
}while (循环终止条件);
循环执行步骤:第一,先进行循环控制变量初始化(在do while之前);
第二,执行循环体;
第三,执行循环控制变量增量;
第四,判断循环终止条件,如果判断结果为真,则返回第二步;如果为假则直接退出循环;
// 计算100以内所有奇数的和
#include
int main(void)
{
int i, sum;
i = ;
sum = ;
do
{
printf("i = %d.n", i);
sum += i;
i += ;
}while(i < );
printf("sum = %d.n", sum);
return ;
}
(4) 总结:不管哪种循环结构,都不能缺少循环控制条件初始化,终止条件,循环控制变量增量,循环体这四部分;
while循环是先判断后执行,do while循环是先执行后判断,等循环一次之后,其实都是一样的;
(以上所述内容为学习mrdbd的嵌入式课程后复习笔记所得,目的是自己复习巩固知识,同时把自己学到的知识分享出来。能力有限,水平一般,如有错误,欢迎指正,谢谢!)
2017-02-26 17:52:18
执行Go程序的三种方式及Go语言关键字
执行 Go 程序的三种方式及 Go 语言关键字 执行 Go 程序的三种方式 一.使用 go run 命令 二.使用 go build 命令 Step1. 对 go 源码源文件执行 go build 命 ...
【C语言入门教程】3.1 程序的 3 种基本结构
程序设计是一个问题求解的过程,解决问题的步骤可看作是程序的控制结构.简单地说,程序的运行过程就是数据输入.数据处理.数据输出 3 个步骤.其中,数据处理过程是否快捷和准确,主要依赖于程序控制结构的设计 ...
python程序的三种控制结构
程序的三种控制结构 什么是控制结构? """ 程序有三种基本结构组成:顺序结构.分支结构.循环结构.任何程序都是由这三种基本结构组成. 顺序结构是程序按照线性顺序依次执行 ...
linux系统编程之信号(八):三种时间结构及定时器setitimer()详解
一,三种时间结构 time_t://seconds struct timeval { long tv_sec; /* seconds */ long tv_usec; /* microsecond ...
求推荐go语言开发工具及go语言应该以哪种目录结构组织代码?
go语言的开发工具推荐? go语言开发普通程序及开发web程序的时候,应该以哪种目录结构组织代码? 求推荐go语言开发工具及go语言应该以哪种目录结构组织代码? >> golang这个答案 ...
Tomcat部署发布JSP应用程序的三种方法 (转)
Tomcat部署发布JSP应用程序的三种方法 1.直接放到Webapps目录下 Tomcat的Webapps目录是Tomcat默认的应用目录,当服务器启动时,会加载所有这个目录下的应 ...
Spark Scala语言学习系列之完成HelloWorld程序(三种方式)
三种方式完成HelloWorld程序 分别采用在REPL,命令行(scala脚本)和Eclipse下运行hello world. 一.Scala REPL. windows下安装好scala后,直接C ...
Java数据结构——树的三种存储结构
(转自http://blog.csdn.net/x1247600186/article/details/24670775) 说到存储结构,我们就会想到常用的两种存储方式:顺序存储和链式存储两种. 先来 ...
ubuntu下安装程序的三种方法
引言 在ubuntu当中,安装应用程序我所知道的有三种方法,分别是apt-get,dpkg安装deb和make install安装源码包三种.下面针对每一种方法各举例来说明. apt-get方法 使用 ...
随机推荐
SMTP协议--在cmd下利用bat命令行发送邮件
SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议 选择‘开始’-‘运行’,输入cmd,进入命令提示符窗口. Windows7默认没有开始Telnet服务,请在运 ...
knockout之入门介绍
Knockout是一个轻量级的UI类库,通过应用MVVM模式使JavaScript的前端UI简单化.Knockout是一个以数据模型(data model)为基础的能够帮助你创建丰富文本,响应显示和编 ...
Silverlight OOB 程序自动更新
Silverlight OOB 程序 提供了非常方便的自动更新功能! 要让 Silverlight OOB 安装到客户端电脑后实现自动更新,必须实现以下两个条件: 一.为 程序的 xap 文件进行签 ...
SMART rule之个人理解
SMART原则通常应用于绩效评估中. S是specific的缩写,也就是你所设定的目标必须是一个具体的目标,而不是一个空而大的东西. 比如你的目标定位为今年学习linux,并对进程管理.内存管理等要能 ...
关于云Linux部署tomcat服务器(Maven的多模块war包)
博主的运行环境: 电脑系统: Linux mint 18 JDK版本: java version "1.8.0_171" Maven版本: Apache Maven 3.5.3 ...
使用XStream是实现XML与Java对象的转换(6)--持久化
九.持久化 在第八节的示例中,当我们操作一组对象时,我们可以指定Writer.OutputStream来写出序列化后的XML数据,我们还可以指定Reader.InputStream来读取序列化后的XM ...
SpringCloud-day06-Ribbon负载均衡
6.3.Ribbon负载均衡 为了实现真正的负载均衡,我们需要集群3个服务提供给者,而在这之前我们只有一个服务提供者1001,那么我们新建模块microservice-station-provider ...
洛谷P3248 [HNOI2016]树(主席树 倍增 )
题意 题目链接 Sol 从上午九点淦到现在qwq 思路比较简单,就是把每次加入的一坨点看成一个,然后直接倍增搞.. 然后慢慢调就可以了... 最后数量级会到达(10^{10}),所以应该开long ...
GDAL添加ECW格式支持
目录 GDAL添加ECW格式支持 ECW 下载ECW JPEG SDK 在Unix平台构建支持ECW的GDAL 二进制ECW SDK和GCC >= 5.1 在Linux上构建的教程 在Windo ...