分支与循环语句

目录

一:分支语句

🌈(1):if语句

        1️⃣语法结构:

        2️⃣ 悬空else语句

        3️⃣if书写形式的对比

🌈(2)switch语句

        1️⃣语法结构:

        2️⃣ switch语句练习

        3️⃣switch语句的嵌套使用

 二.循环语句

🌈(1)while语句

        1️⃣语法结构 

        2️⃣while语句中的break

        3️⃣ while语句中的continue

🌈(2)for循环语句

                 1️⃣语法结构 

        2️⃣for语句中的break

        3️⃣ for语句中的continue

        4️⃣ for语句的循环控制变量

        5️⃣for循环的变种

🌈(3)do...while循环语句

        1️⃣语法结构 

        2️⃣do...while语句中的break

        3️⃣ for语句中的continue

🥑🍓Let's go🍓🥑

一:分支语句

(1):if语句

      1️⃣语法结构:

  🥑单分支:

(1):if(表达式)

                        语句;

 (2):if(表达式)

                        语句1;

                else

                        语句2;

🌈🌈例如:

(1):
#include <stdio.h>
int main()
{
	int age = 0;
	scanf("%d", &age);
	if (age < 18)
	{
		printf("未成年");
	}
	return 0;
}

(2):
#include <stdio.h>
int main()
{
	int age = 0;
	scanf("%d", &age);
	if (age < 18)
		printf("未成年");
	else
		printf("已成年");
	return 0;
}

🥑多分支:

if(表达式)

        语句1;

else if(表达式)

        语句2;

else

        语句3;

🌈🌈例如:

#include <stdio.h>
int main()
{
	int age = 0;
	scanf("%d", &age);
	if (age < 18)
	{
		printf("未成年");
	}
	else if (age >= 18 && age <= 45)
 //注意此处不可写成(18<=age<=45),分析得如果输入的值为47,
 //首先判断age=47>18为真,则age>=18的结果为1,而1又<45为真,
 //则可以打印出“青年” ,但正确应该是打印出的结果为 “中年”
	{
		printf("青年");
	}
	else if (age >= 46 && age <= 69)
	{
		printf("中年");
	}
	else
	{
		printf("老年");
	}
	return 0;
}

        2️⃣ 悬空else语句

🌈🌈例如:

#include <stdio.h>
int main()
{
	int a = 0;
	int b = 2;
	if (a == 1)
		if (b == 2)
			printf("hehe\n");
		else
			printf("haha\n");
	return 0;
	//打印结果为空,原因是else与离得最近的if进行匹配,所以此时的else与if(b==2)相匹配
	//所以if(a==1)条件不满足则不会进入下面的语句,没有结果。
}

//改正后得到 :
#include <stdio.h>
int main()
{
	int a = 0;
	int b = 2;
	if (a == 1)
	{
		if (b == 2)
		{
			printf("hehe\n");
		}
	}
	else
	{
		printf("haha\n");
	}
	return 0;
}
//所以编写if语句和else语句时要添加“{}”符号;

❗️❗️❗️[注]:else是和它离的最近的if匹配的

        3️⃣if书写形式的对比

(1):当遇到==时,最好将常量放在==的左边

(2):初学者在使用if语句碰到单条语句时,也需要使用“{}”符号 

🌈🌈例如:

#include <stdio.h>
int main()
{
	int num = 1;
	if (num == 5)
	{
		printf("haha\n");
	}
	return 0;
}
//代码2:
#include <stdio.h>
int main()
{
	int num = 1;
	if (5 == num)
	{
		printf("haha\n");
	}
	return 0;
}
//代码2比代码1更好,原因为当写判断条件有==时,
//代码1若缺少一个=时不会发生报错,而代码2缺少一个=时,程序会发生报错。

🌈🌈例如:

//代码3:
if(判断条件)
{
	return x
}
     return y;

//代码4:
if(条件)
{
	return x;
}
else
{
    return y;
 }
//代码3与代码4相同

(2)switch语句

        1️⃣语法结构:

switch(整型表达式)

{

        case  整型常量表达式:

                语句;

        case 2:

        case 3:

        ...

}

☀️☀️例如:

        🍒未使用switch语句:

#include <stdio.h>
int main()
{
	int day = 0;
	scanf("%d", &day);
	if (1 == day)
	{
		printf("星期一\n");
	}
	if (2 == day)
	{
		printf("星期二\n");
	}
	if (3 == day)
	{
		printf("星期三\n");
	}
	if (4 == day)
	{
		printf("星期四\n");
	}
	if (5== day)
	{
		printf("星期五\n");
	}
	if (6 == day)
	{
		printf("星期六\n");
	}
	if (7 == day)
	{
		printf("星期天\n");
	}
	return 0;
}

        🍒使用switch语句:

#include <stdio.h>
int main()
{
	int day;
	scanf("%d", &day);
	switch (day)
	{
	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;
	defaault:
		printf("选择错误");
	}
	return 0;
}

        2️⃣ switch语句练习

☀️☀️例如:

#include <stdio.h>
int main()
{
	int day;
	scanf("%d", &day);
	switch (day)
	{
	case 1:
	case 2:
	case 3:
	case 4:
	case 5:
		printf("工作日\n");
		break;
	case 6:
	case 7:
		printf("休息日\n");
		break;
	}
	return 0;
}

        3️⃣switch语句的嵌套使用

☀️☀️例如:

#include <stdio.h>
int main()
{
	int n = 1;
	int m = 2;
	switch (n)
	{
	case 1:
		m++;
	case 2:
		n++;
	case 3:
		switch(n)
		{
		case 1:
			n++;
		case 2:
			m++;
			n++;
			break;
		}
	case 4:
		m++;
		break;
	default:
		break;
	}
	printf("m = %d, n = %d\n", m, n);
	return 0;
}
//最终结果为m=5,n=3;

㊙️㊙️分析得:

 二.循环语句

(1)while语句

        1️⃣语法结构 

while(表达式)

        循环语句;

☃️☃️例如:

//练习在屏幕上打印1-10的数字
#include <stdio.h>
int main()
{
	int i = 1;
	while (i <= 10)
	{
		printf("%d ", i);
		i++;
	}
	return 0;
}

        2️⃣while语句中的break

☃️☃️例如:

#include <stdio.h>
int main()
{
	int i = 1;
	while (i <= 10)
	{
		if (i == 5)
			break;
		printf("%d ", i);
		i++;
	}
	return 0;
	//结果为1 2 3 4
}
//【总结】其实在循环中只要遇到break,就停止后期的所有的循环,直接终止循环。
//	   	  while中的break是用于永久终止循环的。

        3️⃣ while语句中的continue

☃️☃️例如:

#include <stdio.h>
int main()
{
	int i = 1;
	while (i <= 10)
	{
		if (i == 5)
			continue;
		printf("%d ", i);
		i++;
	}
	return 0;
	//结果为:1 2 3 4死循环
}
//【总结】continue是用于终止本次循环的,
//也就是本次循环中continue后边的代码不会再执行,
//而是直接跳转到while语句的判断部分。进行下一次循环的入口判断

(2)for循环语句

         1️⃣语法结构 

for(表达式1;表达式2;表达式3)

        循环语句 ;

【注】:

表达式1:初始化部分,用于初始化循环变量的

表达式2:条件判断部分,用于判断循环什么时候终止

表达式3:调整部分,用于循环条件的调整

 🌞 🌞例如:

//利用for循环打印1-10
#include <stdio.h>
int main()
{
	int i = 0;
	for (i = 1; i <= 10; i++)
	{
		printf("%d ", i);
	}
	return 0;
}

        2️⃣for语句中的break

#include <stdio.h>
int main()
{
	int i = 0;
	for (i = 1; i <= 10; i++)

	{
		if (i == 5)
			break;
		printf("%d ",i);
	}
	return 0;
	//打印的结果为1 2 3 4
}

        3️⃣ for语句中的continue

 🌞 🌞例如:

#include <stdio.h>
int main()
{
	int i = 0;
	for (i = 1; i <= 10; i++)
	{
		if (i == 5)
			continue;
		printf("%d ", i);
	}
	return 0;
	//打印的结果为:1 2 3 4 6 7 8  9 10
}

        4️⃣ for语句的循环控制变量

(1):
#include <stdio.h>
int main()
{
	int  i = 0;
	for (i = 0; i < 10; i++)//for循环的条件最好写成前闭后开
	{
		printf("%d ", i);
	}
	return 0;
}

(2):
#include <stdio.h>
int main()
{
	int i = 0;
	for (i = 1; i <= 10; i++)//有时也需要前闭后闭
	{
		printf("%d ", i);
	}
	return 0;
}

        5️⃣for循环的变种

⛅️⛅️变种1:

#include <stdio.h>
int main()
{
	for (;;)//for循环的三个条件可以选择省略
	{
		printf("hehe\n");
	}
	return 0;
}
 

⛅️⛅️变种2:

 
#include <stdio.h>
int main()
{
	int i = 0;
	int j = 0;
	for (i = 0; i < 3; i++)
	{
		for (j = 0; j < 3; j++)
		{
			printf("hehe\n");
		}
	}
	return 0;
	//打印的结果为9个hehe,原因是3*3=9;
}

⛅️⛅️变种3:

#include  <stdio.h>
int main()
{
	int i = 0;
	int j = 0;
	for (i = 0; i < 3; i++)
	{
		for (; j < 3; j++)
		{
			printf("hehe\n");
		}
	}
	return 0;
	//打印的结果为3个hehe,原因是当i=0,j=0时,打印3个hehe,
	//当i=1时j还是为3,不进行打印hehe。
}

⛅️⛅️变种4:

#include <stdio.h>
int main()
{
	int x, y;
	for (x = 0, y = 0; x < 3 && y < 4; x++, y++)
		//for循环再条件的使用时可以定义多个变量
	{
		printf("hehe\n");
	}
	return 0;
}

⛅️⛅️变种5:

#include <stdio.h>
int main()
{
	int i = 0;
	int k = 0;
	for (i = 0, k = 0; k = 0; i++, k++)
	{
		k++;
	}
	return 0;
	//最后的及如果为空,原因为在判断条件将k=0,则条件为假,
	//不能进行程序的运行
}

(3)do...while循环语句

           1️⃣语法结构 

do

        循环语句;

while(表达式);

🌈🌈例如:

//利用do...while循环打印1-10
#include <stdio.h>
int main()
{
	int i = 1;
	do//循环体至少执行一次 
	{
		printf("%d ", i);
		i++;
	} while (i <= 10);
	return 0;
}

        2️⃣do...while语句中的break

🌈🌈例如:

#include  <stdio.h>
int main()
{
	int i = 1;
	do
	{
		if (i == 5)
			break;
		printf("%d ", i);
		i++;
	} while (i <= 10);
	return 0;
	//打印的结果为:1 2 3 4
}

        3️⃣ for语句中的continue

🌈🌈例如:

#include <stdio.h>
int main()
{
	int i = 1;
	do
	{
		if (i == 5)
			continue;
		printf("%d ", i);
		i++;
	} while (i <= 10);
	return 0;
	//打印的结果为1 2 3 4死循环
}

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值