C语言分支循环

 前言

  作为一名新又没那么新的新人,我将在这里记录我的c语言的学习,废话不多说我将从分支循环开始直接进入正题。

 If循环

  if循环作为我们所接触的第一个循环,相信很多人都早已熟知或者有所耳闻,不管怎样首先我们来看一下if语句的语法结构,if的常用语法结构如下:

 1. if(表达式)

         语句;

2.if(表达式)

        语句1;

  else

        语句2;

3.if(表达式1)

        语句1;

  else if(表达式2)

        语句2;

  else

        语句3;

对于1:if为真时将会执行,否则什么都不执行。

对于2:if else中语句1为真则执行否则要执行语句2。

对于3:if   else if   else中语句1成立则执行否则执行2再否则执行3,总之1,2,3中只能执行一个(即1-2-3的顺序)

注:当if后面的判断的语句不止一句时,需要使用到代码块,此种情况如下图所示,比我们来输入一个数字代表年龄来输出对应的年龄段

此时会打印出未成年,会被防沉迷。

当我们使用if else时也会遇到悬空else这种情况,如下图所示

此时什么都不会被打印出来 

如图所示,else只会和离它最近得if去匹配,此时else是和if(b == 2)这句话去匹配的按正常来说是应该打印hehe,但是却什么都没有打印,是因为还有一点需要注意,如果第一个if没有进去那么就不会去执行后面得循环了,所以此时什么都没有打印,当我们遇到多个if情况复杂得情况下可以使用大括号去分隔开,来实现想要匹配的if与else。

Switch分支

 switch的语法结构如下

switch(整型表达式)

{

语句项;

}

举个例子如下图所示我们想要输出一个数字来表示今天周几,

此时可以输入一个1-7的数字来显示此时对应的周几,图为switch case 分支结构,由switch输入,break停止,case要为常量,这里要注意switch只可以整数型不可用浮点型输入。

我们这里也可以注意到我们现在只可以输入1-7的数字,这时我们要考虑多种情况,比如我们输出一个8,这时我们需要加入一个default来提示输入错误,具体如下图

 

当然default是可有可无的,可以用来处理异常情况,case和default也无任何顺序可言,不过一般将default置后(推荐置后,这是个好习惯,甚至可以加一个break),但是每个switch语句只能出现一条default子句这点要好好注意 

while循环

 我们学习完if语句之后会发现一个问题,if语句只会执行一次,即当满足条件时if语句后的语句执行,否则不执行。但是当我们遇到同一件事需要完成很多次时我们需要使用到while循环。

图为一个简单的while循环此时恒为真所以会死循环打印haha,当我们需要跳出循环的时候,需要使用到break,break会终止所有的循环。

此时会打印输出1 2 3 4,这就是break的使用方法。

在while中还有continue,当我们把上图中的break改成continue时会陷入死循环(在打印出1 2 3 4之后),我们在使用f10调试的时候会发现continue会自动跳到while重新循环,所以后面的printf和i++都不会执行,如下图所示,只有1 2 3 4 没有请按任意键继续。

 当然我们可以将i++提前到if的前面来解决这个问题此时的打印为

 For循环

 for循环大概是相当于把while循环的三个部分合成了一个,for循环的语法如下:

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

        循环语句;

其中表达式1为初始化部分,用于初始化循环变量,表达式2为条件判断部分,用于判断循环何时终止,表达式3为调整部分,用于循环条件的调整。其中表达式1只会被执行1次。

图为一个简单的for循环。

当然break和continue在for循环中也同样适用,break的用法和while循环是一样的,但是continue是不一样的,在while中continue会直接跳过后面的语句不进行调整,而在for循环中continue虽然也会跳过后面的语句,但是会进行调整。我们来举个例子说明下,

 拿前面的while循环中的continue进行类比,while中会打印出1 2 3 4并陷入死循环,而for循环不是这样for循环的打印如下所示

for循环仅仅只跳过了5这一个数字,而继续执行了循环并没有陷入死循环。

我们在写for循环时,不可在for循环的体内修改循环变量,防止for循环失去控制,同时我也建议大家在for语句的循环控制变量的取值采用“前闭后开”的写法即:for(i=1; i<9; i++)。两边都是闭则为 for(i=1; i<=9; i++),前一个为前闭后开,后一个为前后都闭。

当然for循环的初始化,调整,判断都可以省略,但是for循环的判断部分被省略掉的话则判断的条件就会恒为真,所以我们在使用不是很熟练的情况下,一般不建议随便省略。

此时就是随便省略的后果,会陷入死循环无限打印hehe。

 

此时为另一种特殊情况,此时会循环0次,因为k此时为赋值而不是判断,所以产生了假循环现象。

Do While循环

do while语句的语法如下:

        do

                循环语句;

        while(表达式);

图为一个简单的do while循环打印1-10:

 do while中同样有break和continue的使用,而且使用方法与在while中的用法一致,详情可以参考上面的while中的break与continue。

小结

 以上就是if循环,switch分支,while循环,for循环以及do while循环的简介,使用方法以及注意事项等,循环和分支在我们编写程序时会经常用到希望大家可以好好牢记他们的用法以及相应的注意事项。我是一只正在进步的小新,下次见。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值