关于C语言的分支和循环

众所周知,C语言是结构化的程序设计语言。

C语言中有三大结构,分别是顺序结构选择结构循环结构

顺序结构就是平铺直叙的写代码,没有明显的特点,因此学习结构重点在学习分支和循环。

一、选择结构(分支)

1. if语句

1.1 if、else语句

1.1.1 if语句

if语句的基本语法形式如下:

表达式为真(返回值为 非0)则执行语句
表达式为假(返回值为 0)则不执行
例如要打印一个数是否是奇数:
语句的意思是:
如果一个数不能被2整除,则输出
便能正确表示出题目的意思
1.1.2 else语句
一个自然数除了奇数就是偶数,如果想打印奇数和偶数,if就有点不够用了,于是else总是和if一起使用,其基本语法如下:
表达式1为真则执行if中的语句1
否则(表达式1为假)则执行语句2
例如就可以将上题变为判断一个数的奇偶性:
语句的意思是:
输入一个自然数,如果这个数不能被2整除,则打印其为奇数;否则打印其为偶数,这就完成了判断奇偶性的操作

1.2 else if (嵌套if)

嵌套if可以应对多分支的情况,如果一个问题有多个选项,则可以

像这样在else里面嵌套if再嵌套else...

但这样难免看起来太繁琐,于是可以这样简化

这样看起来就十分简洁明了,于是形成了else if的形式,这分支结构里最常用的形式了

1.3 悬空else问题

嵌套循环会出现一个问题,就是多个嵌套if和单个else的匹配问题,C语言中采用的是就近原则,即else总与离得最近的if所匹配

比如:

这个代码的运行结果如下:

可见最后一个else并没有与第一个if匹配,而是和离他最近的if匹配,所以a!=1就没有执行任何语句

2. switch语句

1.1 if语句和switch语句的比较

上面代码中,根据表达式 expression 不同的值,执行相应的 case 分支,执行完后break跳出switch语句。如果找不到对应的值, 就执行 default 分支。

1.2 switch语句中的break

如果去掉上面代码中的break,则语句会执行完case语句后接着向下运行,并不会跳出switch语句

因此,没写完一个case语句后面接一个break是很常用的搭配。

1.3 switch语句中的default

switch语句中的defult相当于if语句中的else

但switch语句对case和defalut的顺序并没有要求,defalut可以放到任何地方。

二、循环结构(循环)

1. while循环

while循环是C语言三种循环的一种,与if语句类似

while(表达式)

语句

是这样一个结构,while循环包含三大部分:

1.初始化 2.判断 3.调整

int i=0(1.初始化)

while(i<=10)(2.判断)

{

        printf("hello world\n");(语句)

        i++;(3.调整)

}

上面语句的意思是:

定义一个整型变量i=0,如果i<=0(为真返回值为非0),则打印hello world,然后i自增1

显然知道i自增到11后不满足while判断条件(为假,返回值为0),则结束循环

可以推断出循环执行了11次,在屏幕上打印了11行hello world

2. for循环

for循环是最常用的循环

其语法结构为:

for(表达式1;表达式2;表达式3)

语句

它相对于while的好处是将while的三大基本部分整合到了一起,简洁明了,不会因为语句过长而找不到这三大部分

因此,表达式1为初始化,表达式2为判断,表达式3为调整

将上述while循环改写为for循环可得

for(int i=0;i<=10;i++)

        printf("hello world\n");

可见改写成for循环语句精简了不少。

3. do-while循环

do-while与上面两种循环最大的区别在于是先执行一次,在判断

先do一次,再while,因此语句至少执行一次,不会像for和while如果不满足判断条件就直接跳过

其语法结构如下:

do

语句;

while(表达式);

这种特殊的结构,也就意味着在特殊场景中异常的好用,但平时还是不经常用的

 

  • 9
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
信息数据从传统到当代,是一直在变革当中,突如其来的互联网让传统的信息管理看到了革命性的曙光,因为传统信息管理从时效性,还是安全性,还是可操作性等各个方面来讲,遇到了互联网时代才发现能补上自古以来的短板,有效的提升管理的效率和业务水平。传统的管理模式,时间越久管理的内容越多,也需要更多的人来对数据进行整理,并且数据的汇总查询方面效率也是极其的低下,并且数据安全方面永远不会保证安全性能。结合数据内容管理的种种缺点,在互联网时代都可以得到有效的补充。结合先进的互联网技术,开发符合需求的软件,让数据内容管理不管是从录入的及时性,查看的及时性还是汇总分析的及时性,都能让正确率达到最高,管理更加的科学和便捷。本次开发的医院后台管理系统实现了病房管理、病例管理、处方管理、字典管理、公告信息管理、患者管理、药品管理、医生管理、预约医生管理、住院管理、管理员管理等功能。系统用到了关系型数据库中王者MySql作为系统的数据库,有效的对数据进行安全的存储,有效的备份,对数据可靠性方面得到了保证。并且程序也具备程序需求的所有功能,使得操作性还是安全性都大大提高,让医院后台管理系统更能从理念走到现实,确确实实的让人们提升信息处理效率。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值