c语言中分支语句和循环语句

什么是语句

语句是一个程序逻辑的体现,它描述了程序。从程序流程的角度来看,程序可以分为三种基本结构, 即顺序结构、分支(选择)结构、循环结构。这三种基本结构可以组成所有的各种复杂程序。

C语言提供了多种语句来实现这些程序结构。

C程序的执行部分是由语句组成的。 程序的功能也是由执行语句实现的。

其中分支语句包括if语句,switch语句。循环语句包括while语句 for语句 do while语句。

注意:c语言中由分号;隔开的就是一条语句。

 

分支语句之if语句

if语句的语法结构

结构1:

if(表达式)

   语句;

结构2:

if(表达式)

   语句1;

else

    语句2;

结构3:(该语法结构适用于多分支的情况)

if(表达式1)

   语句1;

else if(表达式2)

  语句2;

else

  语句3;

 

在if语句中,如果表达式为真,则语句执行。如果表达式为假,则不执行语句。

注意:表达式成立,要执行多条语句式,需要利用大括号将语句列表括起来

if(表达式)
{
  语句列表1;
}
else
{
  语句列表2;
}

书写不规范可能存在悬空else的问题

如上图所示,输出结果为空。因为else语句会与之最近的未匹配过的语句进行匹配。

改正如下:

此时else语句才是和if(a==0)相对应。

 

分支语句之switch语句

该语句常用于多分支的情况

swicth语句的语法结构
 

switch(整型表达式)        //必须为整型,不能为浮点型

{

case  整型常量表达式:       //注意后面的冒号,另外必须为整型,不能为浮点型

执行语句;

}



 

注意:在swicth语句中,我们没法直接实现分支。需要搭配break使用才能实现真正的分支。

输出的情况一致时,可以使用上面的形式进行简化。

 

如果表达式的值和所有的case标签的值都不匹配。程序并不会终止,也不会报错,只是所有的语句都被跳过而已。如果并不想忽略不匹配所有标签的值,可以在语句列表中增加一条default语句。

当switch语句表达式的值并不匹配所有case标签的值时,这个default子句后面的语句就会执行。

注意:default语句可以出现在语句列表的任意位置,每一个switch语句只能出现一条default子句。

 

 

循环语句之while

当条件满足时,if语句后的语句执行,否则不执行。这个语句存在缺陷,该语句只会执行一次。

但是在我们的生活中,很多事情需要我们重复进行很多次。

c语言帮我们引入了while语句,可以实现循环的过程

while语句语法结构

while(表达式)
{
  循环语句;
}

while语句的执行流程:

 

例如利用while语句实现数字1到10的打印

while语句中的break和continue

注意:在whlie循环中,只要遇到break,就会停止后期所有的循环,直接终止循环。所以在shile语句中,break的作用是用来永久终止循环的。

当i=5时,会直接进入到下一次循环的入口判断。因为没有执行i++,所以之后i的值会一直为5.所以打印结果为1234555555555.........

总结:continue是用来终止本次循环的,也就是本次循环中continue后面的代码不会再执行,而是直接跳转到while语句的判断部分,进行写一次循环的入口判断。

 

循环语句之for循环

前面介绍了while循环,为什么还要介绍for循环呢。因为while循环存在着一定的缺点,当代码过长时,初始值,判断值,调整值距离远,不便于阅读和修改。for循环的优点是将初始值,判断值,调整值放在了一起。

 

for循环的语法结构

for(表达式1;表达式2;表达式3)
    循环语句;

 

表达式1是初始化部分,用于初始化循环变量的。表达式2是条件判断部分,用于判断是否终止循环。表达式3是调整部分,用于循环条件的调整。

 

for循环中的break和continue

在for循环中,break语句是直接跳出大循环,continue是跳出本次循环。

注意:

不可以在for循环变量体内修改循环变量,防止for循环失去控制

建议for语句的循环控制变量的取值采用前闭后开区间写法

 

循环语句之do while

do语句的语法结构

do 
  循环语句;
while(表达式);

do语句的特点:

循环至少执行一次,使用的场景有限,所以不是经常使用。

do语句中的break语句和continue语句。

break语句是用来跳出大循环,continue循环是用来跳到判断部分。

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值