C-分支与循环语句---初识篇

编程环境:vs2022(x86)

为什么说是初识篇呢?

1.作为个人第一篇学习内容博客,可谓真是无从下手!

2.作为一名初学者,要做到初步认识与归纳,才能更加深入。

3.内容仅涵盖基本的语法,例子,常见错误与练习仅供初学者参考。

首先,C语言是一门结构化的高级程序设计语言

可分为:

顺序结构
选择结构(if,switch)
循环结构(while,for,do while)

其次,认识语句

由一个分号隔开就是一条语句,类似的只有一个分号,我们就叫它空语句

//那接下来,就可以开始对分支与循环语句的了解了

1.选择结构-分支语句(选择语句)---if语句

先来认识它的语法结构吧:

<1>if(表达式) //若表达式为真(即非0),执行语句,否则,什么都不执行,要注意

           语句;      //的是,表达式为假可就不进if语句了

<2>if(表达式) //若表达式为真,执行语句1,否则,执行语句2

           语句1;

      else

           语句2;

<3>if(表达式1);  //此为if的多分支即else if的个数取决于你,但只能执行一条语句

           语句1;

      else if(表达式2);

           语句2;

      else

           语句3;

可以看出,只要逻辑清楚,是很容易理解的,那让我们来看看它要注意什么吧: 

<1>他们彼此是可以嵌套使用的,在后面解逻辑缜密的题目时,你自然而然就会使用

<2>要执行多条语句时,需要用到代码块,即我们平常说的大括号或者花括号(后面还会提)

<3>else只会与它离得最近的未匹配的if相匹配,与位置可没关,定语好多啊!上例子!

可以看到,什么也没输出,唉?等等,刚说了执行多条语句要用代码块,这里为什么没有?因为else与它上方的if相匹配,构成了一条语句,符合语法,但是格式很挫,所以要养成尽管1条语句也要加{ }的习惯,虽然有些麻烦,但不容易出错啊!(尽管我们的c课老师天天这样写)。好了我们回归正题,因为第一个if条件为假所以就不执行它的语句即后面的打印,如果我们在第二个if语句外加上{ },来看

这里else就与第一个if匹配了,也不难理解吧!

<4>if以及else if后面跟的()后面可没有分号啊,对于初学者来说,这是很容易犯的错误并且很难发现,可else那一行报错了,为什么?因为没有与它相匹配的if了,分号去掉OK

<5>if后面表达式常见的错误

这可不是判断num是否等于5啊,这是将5赋给了num,表达式结果还是真,所以会打印,正确意思要用==,虽然这是运算符的知识点,但是这也是新手在这一章常犯难找的错误

2.选择结构-分支语句(选择语句)---switch语句

C语言也为多分支情况提供了一种语句即switch语句,同样的,先来认识语法结构:

switch(整形表达式) //整形表达式用char类型当然可以,本质是ASCII码值嘛

{

       case 整形常量表达式://这里case后要有空格隔开表达式

       语句项;

        ......     //可以有很多情况

}

很短也很好理解吧,那接下来我们来介绍与它形影不离的两个语句吧

<1>default

英文原意是默认的意思,那就好理解了,例如给定5种情况,那你要是输入其他情况(非法情况)该怎么办,那就用到default语句,当然,它的存在可有可无,为了完善代码,最好还是加上!

<2>break

这个更好理解了,break是中止,停止的意思,在switch语句,它被用来执行完对应语句跳出来,在后面提到循环时他也有跳出循环的功能,上图!

可以看到,执行完第一种情况后,没有break,它就会一直执行直到遇到break,所以你输入1-5的数字都会打印工作日,类似的,6,7两天会被打印为假期,这里也用到了default,当你输入的情况不在1-7里面时,就会打印 有这一天吗!!!所以要想打印输入情况的一种,就每个情况后都加上break。
 

那我们再来说说它们的注意事项

<1>default的位置是不定的,放到哪里都行,但只能出现一次,并且建议default的后面也要有break(尽管你要放到最后)

<2>switch语句允许嵌套使用,但仍需注意使用break,下面给定一个例题

先说结果,m=5,n=3,注意第3个情况后可没break,即执行完嵌套后还会执行第4种情况,总之,记住只有遇到break才会停止!

<3>switch语句可以出现if,break,但是不能出现continue!(后面会介绍continue)

3.循环结构-循环语句  ---while循环

来到重要的一节了,循环!先来看while的语法结构:

      while(表达式)  //表达式为判断条件,结果为真,进到循环

{

       循环语句;

}                                  //建议不管内容多少都给上代码块

然后介绍break与continue:

<1>break就是直接跳出循环,简单粗暴,后面两个循环语句它都是这个功能,不再累赘

<2>continue功能为终止本次循环后面的代码,直接跳转循环的判断条件,while与do while在continue时功能一样,但for略有差异,稍后会介绍,先给图理解它们在while中的用法:

可以看到,当用到break时,当i等于5时,直接跳出循环,来到了程序结尾,故结果为1,2,3,4然后程序结束,而用到continue时可以明显看到光标落到了4的后面,说明程序并没有结束,为什么呢?因为它只是终止后面的循环内容,然后来到判断条件,i此时为5,再进循环,遇到continue又来到判断条件,诶,没错,i的结果为5会一直循环,程序就没法结束。好,如果我们将i++放到if的前面呢?这里不再解释,放到前面并且用continue,结果为1-11而没有5。

3.循环结构-循环语句  ---for循环

for循环相比其它循环在风格上有明显优势,体现在哪,来看看它的语法结构:

      for(表达式1;表达式2;表达式3) //表达式123分别为初始化,条件判断,调整

{

       循环语句;

}                                                                //同样建议带上代码块
 

很明显,一个括号就让循环要做的内容都做了,风格优势就体现出来了,逻辑也很明了,那刚刚在说continue时说for与其它略有差异在呢?看例子:

可以看到不同的是,竟然没有进入死循环啊,差异就体现在因为这里continue终止本次循环后面代码后会来到调整阶段即i++,所以再判断的时候i已经变为6了,所以结果只是不打印5而已,初学者要注意区分。

那for有什么要注意的吗?

<1>不可在for循环体内修改变量,放在for循环失去控制

<2>建议for语句的循环控制变量取值采用左开右闭的写法

<3>for循环的初始,调整,判断部分都可省,若判断部分被省略,即判断条件会恒为真,建议对于初学者来说,不熟练不要省

<4>for可用两个循环变量

值得一提的是,当真正用到的时候,会自然就注意到这些规则,不再举例子

3.循环结构-循环语句  ---do while循环

终于来到最后一个循环了!看语法

   do                          //从这里可以看到循环特点是循环至少会执行一次

      循环语句;

}while(表达式);  //while判断为真后会回到循环
 

continue在do while中的用法:

程序没有结束,说明陷入了死循环

基本内容大致如此,初学者如果想要练习可以参考以下几个经典题目:

<1>求n的阶乘并计算阶乘之和

<2>二分查找

<3>模拟用户登录,3次机会,均错误则退出程序

<4>3个数从大到小排序

<5>求最大公约数

<6>求100-200间的素数(质数)

<7>打印1000-2000内的闰年

<8>1-100整数之间出现9的个数

<9>计算1/1-1/2+1/3-1/4+...+1/99-1/100的值

<10>求10个整数中最大值

<11>打印9*9乘法口诀表

(程序参考会在积累了一些练习后,发表新的博客---刷题篇中展示)

好了,这就是初识篇的内容了,希望通过自己的总结能对初学者提供帮助,当然如果有不正确的地方请求指正!

  • 40
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值