鹏哥C语言集训营笔记(2)循环语句

 C语言是结构化的程序语言,支持三种结构:顺序结构、选择结构、循环结构。

if语句

if

if语句表达式成立(为真),则语句执行,表达式不成立,则语句不执行。

在C语言钟,0为假,非0为真,也就是说,如果表达式的结果是0,则语句不执行,如果不是0,则语句执行。如下面例子:输入一个整数,判断是否为奇数

如果我们此时输入的偶数,则程序将不进行:

 else

基于上面的例子,如果当我们输入的数字不是奇数时,那就是偶数了,如果任意一个整数,我们要想清楚地判断是奇数还是偶数,那该怎么表示呢?

此时,就需要用到if....else...语句了,如:

 但是,if跟else语句都只能同时控制一种语句,也就是说,if跟else后面只能跟一个printf()

如果需要输出两个printf()多个语句,则需要加上大括号{}:

 嵌套if

在if else语句中,else可以与另一个If语句连用,构成多重判断。

如下图:输入一个成绩,判断是优秀,良好还是不及格:

嵌套if还有另外一种写法(加上大括号):

 这只是三重判断,如果将判断上升到五重甚至六重:

 可见,多重判断就是大括号包着大括号,跟套娃一样,这样的写法很清楚地表现了“嵌套”。

但是大括号太多很容易眼花,所以我们可以用过else if来简化我们的代码:

 悬空else问题

如果有多个if和else,可以记住这样一条规则,else总是跟最接近的if匹配。

关系操作符

C语言用于比较的表达式被称为“关系表达式”,里面使用的运算符就被称为“关系运算符”。

主要有六个:

> 大于运算符、< 小于运算符、>= 大于等于运算符、<= 小于等于运算符、== 相等运算符、

!= 不相等运算符。

关系表达式通常返回0或1,表示真假。C语言中,0表示假,所有非零值表示真。

比如:12>20,返回0。表示表达式常用于If或while结构。

逻辑操作符

逻辑操作符提供逻辑判断功能,用于构建更复杂的表达式,主要有三种运算符:

!:逻辑取反运算符(改变单个表达式的真假)

&&:与运算符,就是并且的意思(两侧的表达式都为真,则为真,否则则为假)

|| :或运算符,就是或者的意思(两侧至少有一个表达式为真,则为真,否则为假)

我们可以举个例子,将上面的两种操作符都关联起来,得到:

switch语句

 除了if语句外,C语言还提供了switch语句来实现分支结构。switch语句是一种特殊形式的if...else结构,用于判断条件有多个结果的情况。它把多重的else if改成更易用、可读性更好的形式。

基本语法

 上面代码中,根据表达式expression不同的值,执行相应的case分支。如果找不到对应的值,就执行default分支。

switch后的expression必须是整型表达式

cass后的值,必须是整型常量表达式

if语句和switch语句的对比

例子:输入任意一个整数值,计算除3之后的余数。

if语句为:

switch语句为:

PS:要想让switch语句成为分支语句必须加入break。 

switch语句中的default

在使用switch语句中,我们常常遇到一种情况:当switch后的值无法匹配case语句的时候。这个时候,要不就不对其进行处理,要不就在后面执行default字句(可写可不写)。如:

如果不加default,如果遇到无法匹配的值,程序将不处理。如:

 当然,default的位置可以任意,不强调前后,只要能保证正常的逻辑。

while循环

C语言提供了3种循环语句,while就是其中一种。while语句的语法结构和if语句非常相似。

if和while的对比

直接上图:

上图为while的死循环,当条件为真时,while语句打印hello,因为1为真,且没有其他条件,while陷入死循环,右框将无限打印“hello”下去。

 但if语句,就只会进行一次,只打印一次hello。

 while循环的执行流程

while后面的括号内为判断表达式,首先上来就执行判断表达式,表达式的值为0(假),循环就直接结束;表达式的值不为0(真),则执行循环语句,语句执行完后再继续判断,是否要进行下一次判断。

while循环的实践

上代码:在屏幕上打印1-10的值

 while循环和for循环的对比

 for和while在实现循环的过程中都有初始化、判断、调整这三个部分,但是for循环的三个部分非常集中,便于代码的维护。而如果代码较多的时候while循环的三个部分就会比较分散,所以从形式来看,for循环要更优一些。如下图例子:

 do while循环语句

语法形式

在循环语句中,do while语句使用的最少。while和for都先判断 ,如果满足条件再进入循环,执行循环语句,如果不满足则跳出循环。

而do while循环则是先进入循环体,执行循环语句,然后在while判断表达式后,如果表达式为真,进入下一个循环,如果为假,循环结束。

do while循环示例

输入一个正整数,判断它的位数:

break和continue语句

在循环执行的过程中,如果某些状况发生的时候,需要提前终止循环,这是非常常见的现象。C语言中提供了break和continue两个关键字,就是应该到循环中的。

break

break的作用时用于永久地终止循环,只要break被执行,直接就会跳出循环,继续往后执行。

continue

continue的作用是跳过本次循环continue后边的代码,在for循环和while循环中是有所差异的

如上图,此时光标闪烁,陷入死循环。 这是因为continue跳过了本次循环。

如果我们将a++提前,我们将得到:

如果将以上代码从while换成for语句:

 显而易见,在for循环语句中,使用continue比while少了一个结果11。

而break语句中,for跟while没有区别。

 goto语句

C语言提供了一种非常特别的语法,就是goto语句和跳转标号,goto语句可以实现在同一个函数内跳转到设置好的标号处

例如:

 goto语句特别适合用于多重循环的语句。

x

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值