目录
一,初识C语言
二,分支语句和循环语句
1.什么是语句?
2.分支语句(选择结构)
2.1 if语句
2.2 switch语句
3.循环语句
3.1 while循环
3.2 for循环
3.3 do while()循环
3.4 练习
4.goto语句
文章链接:(1条消息) 初识c语言_Shany_Ming的博客-CSDN博客
(1条消息) 初识c语言2_Shany_Ming的博客-CSDN博客
说实话,做得并不好 但也能凑活着看,也可以去看一些大佬写的。
c语言中有五种语句:
a.表达语句
b.函数调用语句
c.控制语句
d.复合语句
e.空语句
接下来,我们来介绍控制语句
控制语句用于控制程序的执行流程,来实现程序的各种结构方式,他们由特定的语句定义符组成,c语言有九种控制语句。(会用就行,但想会用就得弄清本意)
可分为以下三类:
1.条件判断语句也叫分支语句:if语句,switch语句;
2.循环执行语句:do while语句,while语句,for语句;
3.转向语句:break语句,goto语句,continue语句,return语句。
举个最简单的例子:如果你好好学习,拿一个好offer,你就是下一代龙王。
如果你不学习,失业,工地搬砖。这就是选择
首先,我们来了解一下if语句的语法结构:
这便是结构,当我们也需要实例:
if后的括号内条件为真就执行,条件为假就不执行,如果if后面只有一个语句就不用代码块即{}
如果有多条语句就需要,但实际我们可以养成使用代码块的习惯,因为很多时候我们都会用到,像for,while,do while循环等。
既然有真,那必然有假,在c语言中,我们用0表示假,非0则为真,乍看好像没有什么用其实用处可不小,先记住,咱以后再详讲。
当然我们也可以只用if 不用else,这个是被允许的。
2.1.1 悬空else
这个点在这讲过:(4条消息) c语言中的易错点(对萌新很有帮助)_Shany_Ming的博客-CSDN博客
现在再来详细的讲一遍:
else与离他最近的if匹配 而不是与和它格式对齐的if匹配
什么意思呢?
当你写出这类代码的时候就知道了
对此我们进行修改
这说明适当的使用{}可以是代码逻辑更清楚,其次代码风格很重要,你未来的同时可不希望有一个猪队友。
2.1.2 练习
1.判断一个数是否为奇数
2.输出1-100间的奇数
当我们有许多选择条件时,用if else的形式会变得十分繁琐,这时候就需要用到我们的switch语句
何为语句项?
是一些case语句
就如这种形式,因为在switch语句中,我们无法直接实现分支,搭配break:才能实现真正的分支。
如果没有break;将进行下一个case直至语句完或出现break。(易错点里讲过)
那如果周六与周日写成周末,我们能这样操作
break语句的实际效果是把语句列表划分为不同分支部分
2.2.1 default子句
有时会有说不完的条件,在if语句里,我们用else处理,而在switch历,我们用default子句,当然没有这个子句也不会报错,就想没else一样,但你如果不行忽略这些要被跳过的条件就可以使用
default写在与case相同的位置,且必须在switch语句的最后,我们要养成放default与break的好习惯。
2.2.2 练习
1.用switch语句表示高三学生的学习日(只有周天休息)
循环语句有三种:
1.while
2.for
3.do while
我们已经学习过了if语句来进行判断,但是if语句的局限性导致条件判断只能进行一次。
生活中同一件事我们需要多次完成,那我们该怎么做了,很多个if语句吗?那样太愚蠢了
那么我们应该怎么做呢?
c语言中给我们引入了:while语句,可以实现循环。
while 语法结构
while(表达式)
循环语句
我们来实现一个程序:
在屏幕上打印1-10的数字
上面便是while的执行方式,while后括号里的内容与if一致,为真则执行。
说到这,聪明的朋友就会想到:那会不会死循环?当然,这是肯定的,那怎么执行呢?
其实我们在上文中就提到过:c语言中0为假,非0为真,那这个问题就变得简单了
while(1)
{
循环语句
}
这便是一个死循环,当然,你也可以改成其他数,非0即可,那死循环如何破解?它有什么用了?让我们继续来看
3.1.1 while语句中的break与continue
break介绍
实例演示:
此处提醒一句 = 号是赋值,把后者的值赋值给前者,而 == 为判断 就如我们小学加法里的那个等号
从这个实例我们看出:循环只打印了1 2 3 后面的语句直接停止。
总结:
在循环中只要遇到break,就停止后面的所有循环,直至终止循环。
如此,终止死循环的问题我们就解决了。
continue介绍
实例演示:
咦?输出结果和break一样,难道用处也一样?
那我们对代码进行细微的修改
加了之后发现结果更奇怪了 我们先来看一下规律 在排除2的情况下它其实是个依次加2的等差数列,刚好与循环语句中的两个i=i+1对应,那么问题出在第一个2?当然不是,我们第一进入循环传进的是1,+1后刚好是2,打印后又加了1变成了3,我们继续第二次循环以3传入,3+1=4,刚好符合if条件,本来应该打印4,然后就出问题了,那为什么会变成5呢?4+1=5,这便是答案,4又被传上去了。
总结:
continue语句在while循环中的作用:
continue用于终止本次循环的,也就是本次循环continue后边的代码不会执行,而是直接跳转到while语句的判断部分。进行下一次循环的入口判断。
已经有了一个循环,我们为什么还要for循环呢?
3.2.1 语法
for(表达式1;表达式2;表达式3)
循环语句
3.2.2 break和continue在for循环中的应用
其实也是跳出循环与终止本次循环,只是i++条件的位置可能不同,结果与while不同是因为循环语句不同。
3.2.3 for语句的循环控制变量
建议:
第一个为死循环 第二个打印了100个haha因为没打印十个呵呵第二个for循环结束,第一个for循环只执行了一次。
打印了10个
具体原因大家用所学知识进行分析。不懂评论区留言
3.3.1 语句的语法
3.3.3 do while循环中的break和continue
与上两个循环的意义一致,就不多赘述
至于1 2 过于简单,就不写了,其他大佬也写过,不会的可以去看
3.4.2 二分查找
3.4.3 猜数字游戏
规则:输入一个数,判断是猜大了还是猜小了
参考代码:(1条消息) 1024为大家带来个猜数字游戏_Shany_Ming的博客-CSDN博客