分支和循环(上)

目录

.if语句

.switch语句

.while语句

.do-while语句

.for语句

.流程转向语句


正文

.if语句

在C语言中,if语句有三种形式:单分支if语句、双分支if语句、多分支if语句。

1.单分支if语句

(1)语法格式:   if(表达式)  语句;

(2)执行流程:

①计算表达式的值。

②如果表达式的值为真,则执行其后的语句。

③如果表达式的值为假,不执行该语句,直接退出选择结构。

单分支if语句的执行流程如下:

2.双分支if语句

(1)语法格式:

if(表达式)

    语句 1;

else

   语句 2;

(2)执行流程:

①计算表达式的值。

②如果表达式的值为真,则执行语句 1,然后退出选择结构。

③如果表达式的值为假,则执行语句 2,然后退出选择结构。

双分支if语句的执行流程如下:

3.多分支if语句

(1)语法格式:

if(表达式 1)

语句 1;

      else  if(表达式 2)

语句 2;

     else  if(表达式 3)

语句 3;

    ...

    else  if  (表达式 m)

语句 m;

    else

语句 n;

(2)执行流程:

    依次判断表达式的值,当出现某个表达式为真时,则执行相应的语句。然后跳到if语句之外继续执行程序。如果表达式的值为假,则执行语句 n,然后退出选择结构,继续执行以后的程序。

多分支if语句的执行流程如下:

4.if语句的嵌套

       在if语句的语句部分中包含一个或多个if语句时,则构成了if语句的嵌套。这种结构一般用于较为复杂的流程控制。

常见的if嵌套语句形式如下:

       注意:为了避免if和else的二义性问题,C语言规定,else总是与它上面、距它最近并未匹配的if配对。

例如:

      当运行以上代码的时侯,会发现运行的结果什么都没有,这是因为else配对的是第二个if。第一个if语句的表达式为假,不执行后面的语句,直接退出选择结构,因此什么都没输出。

二.switch语句

1.语法格式:

switch(表达式)

{

     case 常量表达式 1:语句 1;break;

     case 常量表达式 2:语句 2;break;

      ...

     case 常量表达式 n: 语句 n; break:

     default: 语句n+1;

}

2.执行流程:

(1)计算switch后面的表达式的值,然后与每个case后面的常量表达式比较,当表达式的值与某个常量表达式相同时,则执行相应case后面的语句。

(2)执行完case后的语句,如果case后面有break语句,则直接跳出switch控制结构;如果case后面没有break语句,则继续执行后面case的语句,直到遇到break语句或者switch执行完。

(3)当switch后面表达式的值与所有case后的常量表达式都不等时,则执行default后的语句,然后退出switch语句。

switch语句的流程图如下:

例如:

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int main()
{
	int n = 0;
	scanf("%d", &n);
	switch (n)
	{
	case 1:
		printf("星期一\n");
		break;
	case 2:
		printf("星期二\n");
			break;
	case 3:
		printf("星期三\n");
		break;
	case 4:
		printf("星期四\n");
		break;
	case 5:
		printf("星期五\n");
		break;
	case 6:
		printf("星期六\n");
		break;
	case 7:
		printf("星期日\n");
		break;
	default:
		printf("输入错误\n");
	}
return 0;
}

注意:

①表达式的数据类型可以是整数类型、字符类型或枚举类型,不可以是实型。

②关键字default是可选项,可用可无,且default的位置是任意的。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

过客吖

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

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

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

打赏作者

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

抵扣说明:

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

余额充值