第一次学c语言系列之——控制语句!!!

在之前的第一篇语句中我们提到了控制语句,它分为分支语句,循环语句和跳转语句,那么这篇文章就以此展开学习。

一.顺序语句

就是你的代码从上到下一行一行执行,像我们前面两篇文章写的代码都是顺序语句。

二.分支语句

(1)什么是分支语句

也可以叫做选择语句,字面意思,就是叫电脑判断然后去选择执行哪一个代码。一般我们用if语句和switch语句。

(2)if语句

①基本形式

if (表达式)

        语句

②代码演示

计算机判断如果为真(表达式成立)则执行if后面的语句,如果为假(表达式不成立),则if后面的语句不执行,我们用下面的代码来对比一下,相信你一看就能理解。

(3)if...else...

看了上面的代码,我们不禁产生了一个疑惑,那我要是想输出a不能被5整除该怎么办,这里我们就引入了else。

①基本形式

if(表达式)

        语句1

else

        语句2

②代码演示

③花括号的使用

if...else...只能控制一条语句,从下面的代码中我们可以看到“小孩不能进网吧”无论你的年龄是多少,他都会打印出来。

那么,我们要是想要打印出来第二条语句该怎么办?答案是使用花括号

④if的嵌套

比如我们要做一个小练习,0-8岁的是小孩,9到18岁的是青少年,18岁以上的是成年人,这时我们的if...else...最多判断两个,第三个我们怎么判断呢,答案是用if的嵌套,你只需要在花括号里面再加上if...else...就行

你看完这个代码,可能觉得这个代码有点繁琐,那么可以将它简化一下,也就是把花括号去掉,然后把第二个if写到第一个if后面,然后两个else对齐,如下图所示:

⑤else的就近选择

我们从下面这个代码一眼看出它打印的结果应该是456,但是结果是空的,这是因为else默认找离它最近的if,所以这个else跟的是第二个if,由于第一个if根本不满足,那么它后面的根本执行不了,所以输出为空。

要是想让这个else跟的是第一个if,其实也很简单,加上花括号就行了。

(4)关系操作符

①什么是关系操作符

关系操作符用来表达比较的符号,例如:>,<,==(是否等于),!=(不等于),>=(大于等于),<=(小于等于)。

②需要注意的点

我们在一个表达式里面要用到两个及以上关系操作符时,用&&连接。

举个例子:假如说我们要写这样一个程序,判断你输入的数如果在0-10之间就输出它在0-10之间,如果不在,就输出它不在0-10之间。

这是我们正确的代码,假如你想当然的把a >= 0 && a<=10换成0<=a<=10,会发生什么,我们来看下面代码的运行。

在这个代码中,执行的结果明显不符合我们的预期,这是因为计算机是这样执行的,拿咱们输入的33举例,33首先它是大于0的所以结果为真,(也就是1,上一篇文章我们提到过的bool类型中说到过,0表示假,非0表示真,我们计算机一般默认1),此时再拿1和10比较结果也是真,所以最后就得到了这样的结果。因此,我们在使用两个及以上关系操作符时,一定要记得用&&连接。

(5)条件操作符

①基本形式

表达式1 ?表达式2 :表达式3

这种形式的就叫做条件操作符,由于他有三个操作数,所以也可以叫做三目操作符。该操作符的意思是我的表达式1成立时,执行表达式2,否则执行表达式3,它在一些情况下,可以代替我们的if...else...,下面我们用一个例子来感受一下。(比较两个整数的值,并输出较大的那个数)

②代码演示

我们先用if..else来示例一下:

再用条件操作符来示例:

对比两段代码,我们很明显就可以看到条件操作符的优势。

(6)逻辑操作符

用来执行逻辑判断的符号。分为!(取反),&&(并且),||(或者)。

①!

我们用下面两段代码的对比来理解一下

我们先看右边的代码,a的值是0为假,那么!a就为真,所以它的输出结果就是“c语言太棒了”。再看右边的代码,a的值为真,那么!a的值就为假,所以输出结果为“python太棒了”。

②&&

这个操作符是与的意思,要条件全部满足才能够成立。我们在条件操作符那里提到过就不多解释了。

③||

这个操作符是或的意思,表示只要满足一个表达式就成立。

比如下面这个例子,我们要判断某一个数是不是0-2以内的整数。

(7)switch语句

我们前面提到过,分支语句可以通过if和switch实现,下来我们着重讲解一下switch语句 。

①基本形式

switch(表达式)

{

case 常量1:

        语句1;

        break;

 case 常量1:

        语句2;

        break;

                …………

default:

        语句n;

        break;

}

代码演示

假如我们要写一个代码判断一个整数的余数分别是什么,就可以用switch语句

②对break和default的解释

其中,break表示终止当前循环,default表示所有case都不满足时执行它,我们用一串代码来演示一下

通过左边这个代码我们明显产生了一个疑问,为什么我输入了10本来最终我的余数是2,为什么却打印出了我的余数是2和3,这是因为你没有break,我们来刨析一下这段代码是怎么运行的余数为2时就进入了case 2那么在没有break的情况下它后面的语句都会执行。

再来看右边这个代码,输入11时,case 0,1,2都不满足,所以最后就执行default输出了余数是3。

小插曲

为了方便我们代码的简介,我以后的代码就取消了return 0(C99以后编译器都会自动补全return 0),另外,main函数后面跟的花括号我就直接放到main函数后面了(编译器识别的时候不会管你的缩进的)。

三.循环语句

(1)什么是循环语句

就是字面意思,根据你给计算机的条件一次又一次的判断,直到不符合条件为止。循环语句里面有3种语句,分别为while语句,for语句,do while语句,下面我们来逐一了解。

(2)while语句

①基本形式

while(表达式){

        语句;

}

②代码演示

在分析这段代码之前,我们首先要知道while循环要经过初始化,判断和调整三个环节。这段代码是按顺序打印1到100,我们来看看它是怎么运行的,首先int a=1;是初始化,然后a <= 100是判断,最后的a++是调整。你初始化a的值是1,然后判断1符合条件,最后经过调整环节a变成了2,再次判断调整循环往复。

(3)for语句

①基本形式

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

语句1;

…………

}

②代码演示

我们前面用while循环演示了从1打印到100,现在我们用for循环试试:

可以明显看到,相对于while循环,我们的for循环简介了不少,这是因为我们for循环把while循环的初始化,判断,调整三步和到了一行代码中去。下来,我们看看它是如何运行的,a等于0进入了for循环,首先被初始化成为了1,接着判断它是不是小于等于100,满足,输出a,最后对a进行调整,也就是a++,这时候a的值就变成了2,然后循环往复。

(4)do while语句(先执行后判断)

①基本形式

do{

语句1;

…………

}                                        

while(表达式);

②代码演示

在屏幕 上打印 1-100

这个代码是这样运行的,a的值为1,先从do开始,直接打印1,然后执行a++,a的值变为2。最后判断发现满足,再次来到do进行下一次循环。

(5)break和continue

①什么是break和continue

break:终止循环

continue:跳出当前循环

②代码演示

比如我们想要在屏幕上打印1-5,但是遇到3就立马停下,就可以使用break。

那么我们要是想要过滤掉3,就可以使用continue。

先看左边的代码我们明明使用了comtinue,为什么却没有达到我们预期的效果。下来我们分析一下,当你的a等于3时,会跳过后面两条语句,这样你的a值一直都是3,所以它陷入了死循环。再来看右边的正确代码,把a++放到continue的上面,这样它就不会被迫跳出了,你的a值才会发生改变。

注:Ⅰ.上述是用了while语句来示范,对于for和do while语句同样适用

        Ⅱ.千万不要和我们前面的swich混淆了,switch只能用break,不能用continue。

(5)循环的嵌套

就是把while,for,do while三种语句像套娃一样一个套一个。

四.跳转语句

跳转语句就是字面意思,就是直接跳到我需要的位置,中间直接忽略。常用goto表示。

基本形式:
goto 标签名;

………………

标签:

        语句1;

………………

代码演示:

五.结语

下一篇文章将进入数组的学习。

评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值