0.C语言分支与循环

C语言分支与循环
前言:C语言作为一门结构化的程序设计语言,包含顺序,选择(if,switch),循环(for、while、do-while)三种结构

一、分支语句

1.if语句及关系,条件,逻辑操作符介绍

(1)语法形式:if(表达式) 语句

①表达式成立(结果为真):语句执行;表达式不成立(结果为假):语句不执行
②C语言中:0表示假,非0表示真
③注意:在if后面用{}将多条语句“封装起来”,程序逻辑上来讲是一条语句。即便if后面只有一条语句,也建议使用{},便于阅读。

(2)If语句的执行流程

在这里插入图片描述

(3)else语句:如果遇到多种情况需要进行判断,那么就需要用到else语句

①含义:如果if语句不执行,那么就执行else语句
②语法结构:if(表达式1) 语句1;
else(表达式2) 语句2;
if和else语句都默认只控制一条语句,在if后面用{}将多条语句“封装起来”,程序逻辑上来讲是一条语句。即便if后面只有一条语句,也建议使用{},便于阅读。
程序举例:输入一个年龄,如果≤18岁,则输出未成年;否则输出成年
在这里插入图片描述
在这里插入图片描述

③多分支判断:在if和else中间插入else if即可
④悬空else:else总是与和它最近的if语句进行配对。
程序举例:看看这个程序会输出啥?如果你觉得是hi,那就掉坑了,实际上是啥都不输出
在这里插入图片描述

原因解析:表面上看对齐的if和else是配对成一组的,但实际上else和第二个if配对,第二个if不执行,那else自然也就没有机会执行了。

(4)关系操作符:> < >= <= == !=

①关系表达式的返回值是0(假)和1(真),因此常用于if和while的条件判断
代码举例:在这里插入图片描述

②多个关系运算符不宜连用,比如i<j<k,实际执行的是(i<j)<k,最终变成了是0或者1来和k比大小,显然不是写代码的最初意图。

(5)条件操作符:exp1?exp2:exp3

①计算逻辑:如果exp1为真,则计算exp2的值并将其作为整个表达式的值,否则计算exp3的值并将其作为整个表达式的值。
程序举例:年比较输入的a,b两个数的值,输出较大者
在这里插入图片描述

(6)逻辑操作符:与(&&),或(||),非(!)

①!:取反运算符(常用于改变单个表达式的真假)
②&&:与运算符(两边都为真才为真,否则为假)
③||:或运算符(两边都为假才为假,否则为真)
④逻辑运算符的短路操作:总是先对左边的表达式求值,如果单看左边的结果就能得出整个表达式的值,那么右侧的表达式就不会执行了。

2.switch语句

(1)基本格式:switch(整型表达式)

{
case 常量1:语句1;
break;
case 常量2:语句2;
break;
default:语句3;
}

(2)几点注意事项

①case和后面的数字之间要有空格
②加上break才能跳出switch,否则执行到底
③case和default无顺序要求,谁前谁后都可以

(3)如果没有break:那么在这个case语句后面的所有语句都会执行,可以看看下面这个例子:

在这里插入图片描述

二、循环语句

1.while循环

(1)基本格式:while(语句)

{
循环体
}

(2)while的执行流程:先判断表达式真假:若为真,执行完语句后又返回判断表达式真假;若为假,则直接不执行循环体

在这里插入图片描述

程序举例:在屏幕上打印1-10
在这里插入图片描述

while的本质:初始化(i=1),判断(i<=10),调整(i++)
但真正应用起来的时候,初始化,判断,调整可能会随代码量的增加而变得分散,为了集中这三步,for循环应运而生。

2.for循环

(1)基本格式:for(exp1;exp2;exp3)

{
循环体
}
在这里插入图片描述

(2)执行流程

在这里插入图片描述

程序举例:在屏幕上打印1-10
在这里插入图片描述

3.do-while循环

(1)基本格式:do

{
循环体
}while(表达式);

(2)执行流程:先执行一次表达式,再判断,也就是说,循环体至少被执行一次

在这里插入图片描述

程序举例:在屏幕上打印1-10
在这里插入图片描述

4.break和continue语句在循环中的应用

(1)Break:永久中止循环

(2)Continue:跳过本次循环continue之后的语句,直接来到下一次条件判断

这时候前面流程图break和continue的意思就明了了。

5.goto语句介绍:可以在同一个函数内跳转到设置好的标号处。

(1)优势:在多层循环的代码中,可以快速地跳出循环,到达所需要的位置。

(2)劣势:打乱程序执行的流程,逻辑容易混乱,平时编程不建议使用。

  • 23
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值