C语言分支循环语句

本文详细介绍了C语言中的分支语句(if,if-else,if-else-if),switch语句,以及循环语句(while,for,do-while),包括它们的语法结构、用法示例和注意事项,如break和continue的使用。
摘要由CSDN通过智能技术生成

C语言分支循环语句

一. 分支语句

1. if

2. switch

if语句的结构主要是:

第一种:
 if(表达式)
	语句:
例子:
#include <stdio.h>
int main()
{
	int age = 0;
	scanf_s("%d", &age);
	if (age >= 18)
	{
		printf("成年\n");
	}
}
第二种:
 if(表达式)
	语句1:
else
	语句2:
例子:
#include <stdio.h>
int main()
{
	int age = 0;
	scanf_s("%d", &age);
	if (age >= 18)
	{
		printf("成年\n");
	}
	else
	{
		printf("未成年\n");
	}
}
第三种:
if(表达式)
	语句1:
else if(表达式)
	语句2:
else
	语句3:
例子:
#include <stdio.h>
int main()
{
	int age = 0;
	scanf_s("%d", &age);
	if (age >= 18 && age<50)
	{
		printf("壮年\n");
	}
	else if(age<18 && 6<=age)
	{
		printf("青少年\n");
	}
	else
	{
		printf("老年\n");
	}
}
else的匹配: else是要它离的最近的if匹配的(重点)
表达式的结果只要看是真还是假。如果是真,则语句就会执行。
在C语言中如何辨别真假呢?
0表示假,非0表示真
if分支语句中的语句最好还是加入{},这样让人看起来更加美观,且能输入更多。如果没有{}只能输入单语句。条件表达式中最好用的是&&逻辑与和 || 逻辑或。

switch语句的语法结构:

在switch语句中,不能直接进行分支,但是我们可以通过与case使用实现分支
switch(整形表达式)
	语句:
其中语句项主要是一些case语句:
如下:
case 整形表达式:
	语句:
例子:
#include<stdio.h>
int main()
{
	int day = 0;
	scanf_s("%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;
	default:
		printf("输入错误");
		break;
	}
	return 0;
}
注意:输入scanf_s,主要是vs2022出于安全考虑的

二. 循环语句

循环的意思其实就是多次执行,前提要满足循环所需要的条件

1. while

2. for

3.do while

while语句的语法结构:

while 整形表达式:
	语句:
while的语句主要是单语句,如果想要多条语句要加上括号{}
例如:
#include<stdio.h>
int main()
{
	int t = 0;
	scanf_s("%d", &t);
	while (t < 10)
	{
		printf("hello word");
		t++;
	}
	return 0;
}
如果不加上括号{},例如:
#include<stdio.h>
int main()
{
	int t = 0;
	scanf_s("%d", &t);
	while (t < 10)
		printf("hello word");
		t++;
		return 0;
}
假设输入5,结果就只执行,而且是死循环:
printf("hello word");
而t++;只会执行一次,最终t一直6
t++;
上面这些只是while的基本语法

while语句中的break和continue用法挺重要的

break在while循环中的作用:
其实在循环中只要遇到break,就会停止后期的所有的循环,直接终止循环,所有:while的break是用于永久终止循环
你可以先看下面的代码结果是,后面我会揭晓的答案
#include<stdio.h>
int main()
{
	int num = 5;
	while ( num < 10)
	{
		printf("hello");
		break;
		num++;
		printf("hello");
	}
	return 0;
}
结果只会输出一个hello,不会执行num++;这条语句

continue在while循环中的作用就是:

continue是用于终止本次循环的,也就是本次循环中continue后边的代码不会再执行,而是直接跳转到while语句的判断部分。进行下一次循环的入口判断。
先看一下面,如果知道结果,那你就已经知道continue用法
#include<stdio.h>
int main()
{
	int num = 5;
	while ( num < 10)
	{	
		if (num == 5)
		{
			printf("hello");
			continue;
		}
		num++;
		printf("hehe");
		
	}
	return 0;
}


答案是死循环打印hello

for循环

语法结构:
for(表达式1; 表达式2; 表达式3)
		循环语句;
表达式1
表达式1为初始化部分,用于初始化循环变量的。
表达式2
表达式2为条件判断部分,用于判断循环时候终止。
表达式3
表达式3为调整部分,用于循环条件的调整。
#include <stdio.h>
int main()
{
 	int i = 0;
 	for(i=1; i<=10; i++)
 	{
 		printf("%d ", i);
 	}
 		return 0;
}
结果是一到十的数字
其实while循环和for循环,大部份场景都能互换,主要是语法区别,我个人觉得for循环会更常用,下面是for循环和while循环的对比:
int i = 0;
//实现相同的功能,使用while
i=1;//初始化部分
while(i<=10)//判断部分
{
 	printf("hehe\n");
 	i = i+1;//调整部分
}

//实现相同的功能,使用while
for(i=1; i<=10; i++)
{
 printf("hehe\n");
}

break和continue在for循环中

我们发现在for循环中也可以出现break和continue,他们的意义和在while循环中是一样的。
但是还是有些差异:
//代码1
#include <stdio.h>
int main()
{
 	int i = 0;
 	for(i=1; i<=10; i++)
 	{
 		if(i == 5)
 		break;
		printf("%d ",i);
 	}
 	return 0;
}

//代码2
#include <stdio.h>
int main()
{
 	int i = 0;
	for(i=1; i<=10; i++)
 	{
 		if(i == 5)
 		continue;
 		printf("%d ",i);
 	}
 	return 0;
}

for语句的循环控制变量

建议:
1. 不可在for 循环体内修改循环变量,防止 for 循环失去控制。
2. 建议for语句的循环控制变量的取值采用“前闭后开区间”写法。
int i = 0;
//前闭后开的写法
for(i=0; i<10; i++)
{}

//两边都是闭区间
for(i=0; i<=9; i++)
{}
下面有一道题,是不错的,可以看看
#include <stdio.h>
int main()
{
	int i = 0;
	int num = 0;
	for (i = 0, num = 0; num = 0; i++, num++)
		num++;
	return 0;
}

do…while()循环

语法结构:
do
	循环语句;
while(表达式);
循环至少执行一次,使用的场景有限,所以不是经常使用。
#include <stdio.h>
int main()
{
 	int i = 10;
 	do
 	{
 		printf("%d\n", i);
 	}while(i<10);
 	return 0;
}

do while循环中的break和continue

其实用法与for,while差不多
//do while的break代码
#include <stdio.h>
int main()
{
 	int i = 10;
    
 	do
 	{
        if(5 == i)
            break;
 		printf("%d\n", i);
 	}while(i<10);
    return 0;
}

//do while的continue代码
#include <stdio.h>
int main()
{
 int i = 10;
    do
	{
        if(5 == i)
            continue;
 		printf("%d\n", i);
 	}while(i<10);
    return 0;
}
如果这文章对你有用的话,帮忙点点赞,谢谢啦
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值