C语言流程控制

1.bool类型
(1)bool只有true和false;在C语言中,true是1,false是0;除了0是false,其他非零情况都是true。
(2)在.c文件需要引入#include<stdbool.h>,在.cpp文件中可以直接使用。
2.关系表达式的运算结果是bool类型,其优先级如下:
在这里插入图片描述
T6的四个运算符优先级相同,T7的两个运算符优先级相同。
3.逻辑表达式的运算结果是bool值,逻辑运算符和其他运算符的优先级如下:
在这里插入图片描述
4.分支语句
(1)if_else使用时的注意事项
1)一个花括号就是一个代码块,良好的代码风格不管是一条语句还是多条语句都应该使用{}括起来。
2)使用if_else嵌套时,要注意if和else的嵌套问题。C语言规定,else总是和最近的if匹配。
3)if语句后面不能加;加了就成了空语句,不会执行本应该执行的代码。
(2)switch多分支结构
1)
在这里插入图片描述
2)注意事项
a)case后面必须是一个整数,或者是结果为整数的表达式,但不能包含任何的变量。
b)default不是必须的。当没有default时,如果所有case匹配失败,那么在switch中就什么就不执行。接着执行后续代码。
5.函数初步
(1)形参和实参
在这里插入图片描述
(2)函数调用机制
1)建立栈空间;
2)保护现场:主调函数运行状态和返回地址入栈;
3)为被调函数中的局部变量分配空间,完成参数传递;
4)执行被调函数函数体;
5)释放被调函数中局部变量占用的栈空间;
6)恢复现场:取主调函数运行状态及返回地址,释放栈空间;
7)继续主调函数的后续语句。
6.循环语句
1}空语句:语句可以为空,也就是除了末尾处的分号以外什么符号都没有。在if语句后加空语句会导致条件语句不执行。在循环语句中使用空语句会导致死循环。
2)跳转语句:
a)break语句:语句只能用在switch语句和循环语句中,用来跳出switch语句或提前终止循环,转去执行switch语句或循环语句之后的语句。
b)continue语句:
语句只能用在循环语句中,用来终止此次循环。当程序执行到continue语句时,将跳过其后尚未执行的循环体语句,开始下一次循环。下一次循环是否执行取决于循环条件的判断。continue语句与break语句的区别在于,continue语句结束的是本次循环,而break结束的是本次循环。
c)goto语句:
该语句和标号语句一起使用,所谓标号语句是和标识符一起使用的语句,它控制程序从goto语句所在的地方转移到标号语句处。
d)return语句:
用于结束函数的执行,返回调用者,如果是主函数,则返回至操作系统。
7.示例。编写一个程序,输入一个年份和月份,判断该年该月有多少天。

#include<stdio.h>
bool IsLeapYear(int year) //该函数判断某年是否是闰年,是就返回true,不是就返回false;
{
	if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0)
	{
		return true;
	}
	else
	{
		return false;
	}
}
int JudgeDay(int year, int month)//判断某年某月有多少天,返回天数
{
	int days;
	switch (month)//当case值匹配上时,不会继续匹配,而是接着执行下面的语句,直至遇到break为止
	{
	case 1:
	case 3:
	case 5:
	case 7:
	case 8:
	case 10:
	case 12:
		days = 31;
		break;
	case 4:
	case 6:
	case 9:
	case 11:
		days = 30;
		break;
	case 2://是闰年就返回29天,不是就返回28{if (IsLeapYear(year))
	{
		days = 29;
	}
	else
	{
		days = 28;
	}
	break;
	default:
		printf("Input error!");
		break;
	}
}
	return days;
}
	int main()
{


		int y, m, d;
		printf("请依次输入年月:\n");
		scanf_s("%d,%d", &y, &m);
		d = JudgeDay(y, m);
		printf("%d年%d月有%d天", y, m, d);
		return 0;
}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值