从零开始的C语言生活_分支语句

C语言是一种结构化的程序设计语言。

他有三种结构,分别为顺序结构,选择结构,循环结构。

顺序结构最简单,就是一个程序从头走到尾。

本篇文章重点描述的是分支语句

1分支语句

1.1if,else的分支语句

在C语言中被 “;”隔开的就是一条语句。

比如

int a=0;
printf("a\n");
;

 一个分号也是一条语句,是空语句。

作为一个分支语句,他可以有多种选择,比如已下这段代码。

#include<stdio.h>
int main()
{
	int age = 10;
	if (age <= 18)
		printf("未成年\n");
	else
		printf("成年\n");
	return 0;
}

这段代码就是有两种分支,也可以只有if一种分支,都是可以的,根据你的条件,选择不同的分支进入。

从运行结果可以看出,进入了第一条分支。

if和else只能控制一条语句。打个比方。

#include<stdio.h>
int main()
{
	int age = 10;
	if (age <= 18)
		printf("未成年\n");
	else
		printf("成年\n");
	    printf("可以结婚");
	return 0;
}

 根据以上代码,运行结果应该只有未成年,但实际运行结果

这明显是不对的。

如果想要if和else控制多条语句,则需要使用{}

#include<stdio.h>
int main()
{
	int age = 10;
	if (age <= 18)
		printf("未成年\n");
	else
	{
		printf("成年\n");
		printf("可以结婚");
	}
	return 0;
}

如果想要进行三条及以上的分支选择则需要使用else if

#include<stdio.h>
int main()
{
	int age = 10;
	if (age <= 18)
		printf("未成年\n");
	else if(age>18 && age<=50)
		printf("青年\n");
    else if(age>50)
		printf("老年\n");
	return 0;
}

值得注意的是,在条件中,不能直接使用18<age<=50,而需要使用“&&”操作符来表示与。

如果程序中出现了多条if语句,那么else则会默认与离他最近的一个if进行匹配。

#include<stdio.h>
int main()
{
	int a = 0;
	int b = 1;
	if (a == 1)
		if (b == 1)
			printf("on\n");
	else
		printf("off\n");
	return 0;
}

从以上代码来看输出结果应该是off。但

什么都没打印,因为实际的写法应该是

#include<stdio.h>
int main()
{
	int a = 0;
	int b = 1;
	if (a == 1)
		if (b == 1)
			printf("on\n");
		else
		    printf("off\n");
	return 0;
}

 else会跟离他最近的if进行匹配,而不是跟他对齐的if。

所以说保持良好的代码风格很重要。与人方便,于己方便。

另一种条件语句是switch.

1.2switch语句

switch的用法,switch可以嵌套使用,即在switch语句中再使用switch。

switch (整形表达式)
{
	语句项;
}

1.2.1case语句项

语句项就是由case加整形常量表达式:

需要注意的是case后面的必须是整形常量,不可以使用变量,但是字符串也可以使用。

1.2.2break结束

在switch语句中,他是从头到尾运行的,case可以理解为是入口,从符合条件的case进入,一直运行到switch结束。所以要配合break来使用,break为出口,即跳出switch。

#include<stdio.h>
int main()
{
	int day = 0;
	scanf("%d", &day);
	switch (day)
	{
	case 1:
			printf("monday");
	case 2:
			printf("tuesday");
	case 3:
		    printf("wedesday"); 
			
	}
return 0;
}

当我们输入2时

通过结果可以看出,当进入case2后,一直运行,直到switch结束,所以需要break,当符合的条件运行完之后,跳出switch。

#include<stdio.h>
int main()
{
	int day = 0;
	scanf("%d", &day);
	switch (day)
	{
	case 1:
			printf("monday\n");
			break;
	case 2:
			printf("tuesday\n");
			break;
	case 3:
		    printf("wedesday\n"); 
			break;
	}
	return 0;
}

当然具体情况具体分析,当多个case运行结果一致,也可以不用加break。

1.2.3default

当switch中的所有case条件都不符合时,则使用default,使default的子句被执行。每一条switch语句中,只能出现一条default子句。但是他的位置不被限定,可以出现在列表的任何位置。        

        

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值