C语言分支循环语句

本文详细介绍了C语言中的分支语句(if、ifelse、嵌套if、switch)、循环语句(while、dowhile、for)以及break和continue的关键用法,帮助读者理解并掌握基本的控制流结构。
摘要由CSDN通过智能技术生成

分支语句

  1. if语句的一般格式 if (表达式){ 语句; }
    注意:非0为真,0为假
    表达式为真,语句执行;反之相反
    我们可以看看简单的案例:
	//输入一个整数,判断是否为奇数(模2余1)
	int a = 0;
	scanf("%d", &a);
	if (a % 2 ==0)//==是判断相等,	奇数,除2 余数1
		printf("%d是奇数\n", a);
		

小技巧:为了避免表达式出错,可以选择值在前,变量在后

	int a = 1;
	if (a=5)//为了防止==和=出现,将常量放在前面
		printf("hehe\n");
	if(a==5)
		printf("haha");

2 if else语句 if (表达式) { 语句1; } else { 语句2; }
表达式为真,语句1执行;反之,语句2执行
与if语句不同的是,if else语句多了一个选择
请看下面的代码

	//判断奇数还是偶数
	int a = 0;
	scanf("%d", &a);
	if (a % 2 == 1)
		printf("%d是奇数\n", a);
	else
		printf("%d是偶数", a);

if语句和if else 语句 默认只能控制一条语句,如果要跟多条语句,加大括号。

	int age = 0;
	scanf("%d", &age);
	if (age >= 18)
	{//代码块
		printf("成年\n");
		printf("可以谈恋爱了\n");
	}
	else
	{
		printf("未成年\n");
		printf("好好学习\n");
	}

嵌套if 可以构成多重判断,在易于理解的基础上,if else if 语句经常出现

	int age = 0;
	scanf("%d", &age);
	if (age < 18)
		printf("少年\n");
	else if (age <= 44)	//18-44
		printf("青年\n");
	else if (age <= 59)	//45-59
		printf("中老年\n");
	else if (age <= 89)	//60-89
		printf("老年\n");
	else					//>=90
		printf("老寿星\n");
		

悬空else问题:——如果有多个if else语句,else总是跟最接近的if匹配,往往会出现坑,需要注意

	int a = 0, b = 2;//if a==1,才能进入if语句,也才轮的上if+else
	if (a == 1)//if+else 合起来是一条语句
		if (b == 2)//if+else嵌套在第一个if语句之中,
//如果第一个if语句不成立,嵌套的if和else就没机会执行
		printf("hehe\n");
		else//else与最近的if匹配
		printf("haha\n");//运行结果执行
  1. switch语句 switch (整型常量表达式) { case 1(常量) : 语句1; break; case 2(常量) : 语句2; break; case 3(常量) : 语句3; break; break; default:语句; break; }

case和default没有顺序要求
default 最好在switch 的最后,放在其他位置,可能会对结果产生影响
如果某几个语句相同,可以化简操作,如下

	int a = 0;
	scanf("%d", &a);
	switch (a)
	{
	case 2://简化
	case 1://简化
	case 5:
	case 3:
	case 4:
		printf("工作日");
		break;
	case 6:
	case 7:
		printf("休息日");
		break;
	default:
		printf("输入错误");
		break;
	}

!!! 如果没有break,代码会一直进行,直到遇到break为止或代码运行到最后

	int x = 3;
	int y = 3;
	switch (x % 2) 
	{
	case 1:
		switch (y)
		{
		case 0:
			printf("first");
		case 1:
			printf("second");
			break;
		default: printf("hello");
		}//注意:没有break,代码会一直进行
	case 2:
		printf("third");
	}

循环语句

  1. while 语句while(表达式){ 循环体;}
    while由3部分组成:
    循环变量初始化,判断和调整
    先判断表达式,表达式为真,执行语句,再次判断,直至表达式为假,结束循环(不考虑循环体中有break和continue的情况)
	int i = 1;//循环变量初始化
	while (i <= 10)//判断
	{
		printf("%d", i);//循环的动作
		i++;//调整
	}
  1. do while 语句do{循环体;}while(表达式);
    do while与while 的不同之处:do while先进入循环体,执行语句,再判断,可见do while 至少执行一次(假设表达式为假,只执行一次)

请看下面的案例,理解do while 只执行一次的情况

   int i = 11;
   do
   {
   	printf("%d ", i);
   	i++;
} while (i <= 10);//只执行一次

  1. for 语句for(表达式1;表达式2;表达式3)【初始化;判断;调整 分号】{循环体;}
    由于 while循环 的初始化,判断,调整 比较分散,因此引入了for循环(最常见的循环语句)
    for 循环的执行流程:先初始化,再判断,表达式2为真,进入循环体,调整和判断,直到判断为假,结束循环(不考虑循环体中有break和continue的情况)
//使用for循环,在屏幕上打印1-10
int i = 0;
for (i = 1; i <= 10; i++)
{
	printf("%d ", i);
}

注意!!!for 循环的初始化,判断,调整可以省略,判断部分省略,意味着恒成立

  1. break 和 continue
    break用于永久的终止循环,跳出循环,执行后续的代码
    continue跳过本次循环,本次循环下面的语句不再执行,直接进入判断部分(for循环中,跳过本次循环,来到调整部分)

以下为break和continue的简单案例理解
break

	int i = 0;
	for (i = 1; i <= 10; i++)
	{
		if (i == 5)
			break;//永久终止循环,执行循环后面的代码
		printf("%d ", i);
	}//运行结果为:1 2 3 4

continue

  1. while 语句的continue
	int i = 1;
	while (i <= 10)
	{
		if (i == 5)
			continue;
		printf("%d ", i);
		i++;
	}//1 2 3 4死循环,保持输出状态

2.for 语句的continue

int i = 0;
for (i = 1; i <= 10; i++)
{
	if (i == 5)
		continue;//跳过本次循环,来到调整部分,再进入判断部分
	printf("%d ", i);
}//运行结果为:1 2 3 4 6 7 8 9 10

杳杳碎碎念

以上是我学习C语言分支循环的简单总结,希望发现了它的小伙伴们,可以进行指正,很高兴可以和大家一起学习。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值