C语言基础(3)——控制结构

if语句

if语句用于判定所给定的条件是否满足,程序根据判定的结果决定所执行的操作。c语言提供如下三种形式的if语句。

1.if形式

if形式语句如下:
if(表达式)
语句
不带else子句的if语句适合解决单分支的选择问题,其流程图如下:

A
表达式
B
C

图 1. 单分支选择结构
例如:

if(a>b)
max=a;

上述语句语句的含义是:如果“a>b”,则将变量a的值赋给变量max。
初学者使用if语句时经常犯的错误之一是将
if(a==5)
写成:
if(a=5)
后者条件表达式结果为5。因此,对这条If语句而言,条件总是为真。

2.if-else形式

if-else形式语句如下:
if(表达式)
语句1
else
语句2
这种带else子句的if语句用来解决双分支选择问题,流程图如下:

A
表达式
1
2
H

图 2. 双分支选择结构
例如:

if(a>b)
    max=a;
else
    max=b;

上述语句语句的含义是:如果“a>b”,则将变量a的值赋给变量max;否者将变量b的值赋值给max。

3.else-if形式

if(表达式)
语句1
else if(表达式2)
语句2

else if(表达式n)
语句n
else
语句n+1
或者可以写成:
if(表达式)
语句1
else
if(表达式2)
语句2

else
if(表达式n)
语句n
else
语句n+1
如果表达式1为真,则执行语句1,否则如果表达式2为真,则执行语句2,……,如果if后的所有表达式均不为真,则执行语句n+1。这种形式的if语句可以解决多分支选择问题。
其流程图如下:

A
表达式1
语句1
表达式2
语句2
表达式3
语句3
语句4

switch语句

当问题需要讨论的情况较多(三个或三个以上)时,通常使用switch语句。switch语句就像多路开关一样,使程序控制流程形成多个分支,根据一个表达式可能产生不同的结果值,选择其中一个或几个分支语句去执行。因此,switch语句常用于各类分类统计,菜单等程序设计。switch语句的一般形式如下:
switch(表达式)
{
case 常量表达式 1:
语句序列 1;
case 常量表达式 2:
语句序列 2;

case 常量表达式 n:
语句序列 n;
default:
语句序列 n+1;
}
计算 switch后表达式的值,并逐个与其后的常量表达式进行比较。当表达式的值与某个常量表达式的值相等时,即执行其后的语句,然后不再进行判断,继续执行后面所有case后的语句。如果表达式的值与所有case后的常量表达式均不相同,则执行default后的语句。
switch后的圆括号内表达式的值应该是整型,字符型或枚举类型。每个case后的常量表达式的类型必须与其匹配。

循环结构

while语句

while语句的一般形式为:
while(表达式)
循环体语句
计算表达式的值时,当值为非0(即为真)时,表示条件成立,则执行循环体语句,直到表达式的值为0(即为假)时结束循环的执行。如果循环体语句是由两条或两条以上语句组成,则需要将循环体语句用一对花括号{}括起来。所以执行while语句时是先判断后执行。
流程图如下:

A
表达式
循环体语句
H
do…while语句

do…while语句的一般形式为:
do
{
循环体语句
}while(表达式)

执行循环体语句,然后判断while后的表达式的值。当表达式的值为非0(即为真)时,则重复执行循环体语句,直到表达式的值为0(即为假)时结束循环的执行。如果循环体语句有两条或两条以上的语句组成,则需要将循环体语句用一对花括号{}括起来。如果循环体语句只有一条语句,可以不用花括号{}括起来。与while语句不同的是,do…while语句是先执行后判断,不管表达式的值如何,循环体语句至少会执行一次。
do…while语句的流程图如下:

A
循环体语句
表达式
H
for语句

在c语言程序中,for循环的使用频率很高。for循环一般形式如下:
for(表达式1;表达式2;表达式3)
循环体语句
功能:
(1)首先计算表达式1的值,并转向步骤(2)。通常表达式1的作用初始化循环变量,即为循环变量赋初值。
(2)计算表达式2的值,若表达式2的值为真,则执行一次循环体语句,并转向步骤(3);若表达式2的值为假,则结束循环。通常给出循环重复执行的判定条件。
(3)计算表达式3的值,转回重复步骤(2)。通常表达式3的作用是循环控制变量增值。
要注意哦,表达式与表达式之间是分号;不是逗号
for循环流程图如下:

模块A
表达式1
表达式2
循环体语句
表达式3
H
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小Floyed

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值