c语言分支与循环语句学习,从入门到掌握

本文详细讲解了C语言中的if、嵌套if、switch、while、for和dowhile语句,包括语法、代码解析和实践练习,以及break和continue在循环中的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

提示:本次小编将会和各位读者好好唠嗑一下c语言中的语句,准备好了么出发啦,请注意哦,一定要自己动手敲代码,不然就只能纸上谈兵了!


前言

C语言是一门结构化的程序设计语言,支持三种结构:

结构语句
顺序结构
选择结构if语句,switch语句
循环结构for 语句,while 语句,do while语句


一、if 语句

1.1 语法形式

前面博客内容也与大家讲述过,在c语言中,0表示假,非0表示真

if(表达式) //表达式为真,则执行语句,表达式为假,则语句不执行
语句
else
语句

接下来用一串代码给大家演示一下吧:

//判断一个数字是否为奇数
#include<stdio.h>
int main()
{
	int input = 0;
	//输入一个数
	scanf("%d",&input);
	if (input % 2 == 1)
		printf("奇数:%d\n", input); 
	else 
		printf("偶数:%d\n", input); 
		return 0; 
}

注意:以下默认if 和else后面只跟一条语句如果需要多条语句则需要加上大括号将多条语句括起来,如下方所示:

//判断一个数字是否为奇数 
#include<stdio.h> 
int main() 
{
	int input = 0; 
	//输入一个数 
	scanf("%d",&input); 
	if (input % 2 == 1)  
	{
		printf("我是奇数哦");  
		printf("奇数:%d\n", input);  
	}
	else  
	{
		printf("我是偶数哦");  
		printf("偶数:%d\n", input);  
	}
		return 0;  
}

1.2 嵌套if

语法形式

if(表达式)                         
     语句
else if       
     语句
else        
      语句

代码案例

//判断一个数字是正数 负数 还是 0   
#include<stdio.h>   
int main()   
{
	int input = 0;   
	//输入一个数   
	scanf("%d", &input);   
	if (input > 0 )  
	{;
		print>f("正数:%d\n", input);  
	}
	else if(input < 0 )  
	{
		printf("负数:%d\n", input);  
	}
	else  
	{
		printf("它的数字是0");  
	}
	return 0;  
}

1.3 悬空else问题

如果有多个if和else,可以记住这样一条规则,else总是跟它最接近的if匹配

//悬空else      
//判断一个数字是正数 负数 还是 0      
#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;      
}

在这里插入图片描述


二、switch 语句

2.1 语法形式

switch(表达式)
{
case value1(值):
statement(语句)
case value2(值):
statement(语句)
default:
statement(语句)
}

注意:
1,switch后面的表达式必须是整型的表达式!
2,case后的值,必须是整型常量表达式或者是字符(因为字符存储的是它的ASCII值)
3,default 匹配的一般是switch语句表达式匹配不到的值,它的顺序无严格顺序要求,但是不能影响代码的逻辑

2.2 switch语句和if语句的区别

练习:输入任意一个整数值,计算除3之后的余数

int main()
{
	int num = 0;
	scanf("%d",&num);
	if (num % 3 == 0)
		printf("余数是0\n");
	else if (num % 3 == 1)
		printf("余数是1\n");
	else
		printf("余数是2\n");
	return 0;

}
#include<stdio.h>
int main()
{
	int num = 0;
	scanf("%d",&num);
	switch (num)
	{
	case 0:
		printf("余数是0\n");
		break;
	case 1:
		printf("余数是1\n");
		break;
	default:
		printf("余数是2\n");
		break;
	}

}

上面代码可以发现我在case语句后加了一个break;case只能从swich后面表达式来决定从哪里进来,但是从哪个地方跳出去呢,如果没有办法让它跳出去他就会运行剩下的代码,而break可以跳出一层循环。

2.3 代码练习

练习1:

输入一个1~7的数字,打印对应的星期几

#include<stdio.h>
//输入一个1~7的数字,打印对应的星期几
int main()
{
	int date = 0;
	scanf("%d", &date);
	switch (date)
	{
	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("你输入的数字有误,请重新输入\n");    
		break;    
	}
	return 0;    
}

练习2:

输入1-5为工作日,6-7休息日(提示没有break,语句继续向后执行)

#include<stdio.h>
int main()
{
	int date = 0;
	scanf("%d", &date);
	switch (date)
	{
	case 1:
	case 2:   
	case 3:      
	case 4:      
	case 5:      
		printf("工作日\n");      
		break;      
	case 6:      
	case 7:      
		printf("休息日\n");      
		break;      
	default:      
		printf("你输入的数字有误,请重新输入\n");      
		break;      
	}
	return 0;      
}

三、while循环

3.1 语法形式

while(表达式) {
    语句;
}  

表达式为真就执行语句,表达式为假则不执行。

3.2 while结构

#include<stdio.h>
int main()
{
	int i = 0;
	scanf("%d",&i);
	while (i)
	{
		printf("%d", i % 10 );
		i = i / 10;
	}
	return 0;

注意:

  1. 上方代码在这里i被称为循环变量。
  2. int i = 1;这里i被初始化,决定了循环从哪里开始。
  3. i <= 10 被称为判断。
  4. i++;属于调整;
  5. 对于初始化,判断,调整三个部分非常重要,改变任意一个地方得到的值都会不同。

3.3 代码练习

练习1

在屏幕上打印1-10的值

#include<stdio.h>
int main()
{
	int i = 1;
	while (i <= 10)
	{
		printf("%d ",i);
		i++;
	}
	return 0;
}

练习2:

输入一个正的整数,逆序打印这个整数的每一位
例如: 输入:1234 输出:4 3 2 1

#include<stdio.h>  
int main()  
{
	int i = 0;      
	scanf("%d",&i);      
	while (i)      
	{
		printf("%d", i % 10 );      
		i = i / 10;      
	}
	return 0;      
}

四、 for循环

4.1 语法形式

相对于while语句,for循环把初始化,判断,调整三个部分放在了一起

for(表达式1;表达式2;表达式3) {
   循环体语句;
}

表达式1:用于循环变量的初始化
表达式2:用于循环结束条件的判断
表达式3:用于循环变量的调整

for循环各个执行步骤为:

  1. 首先初始化表达式1。

表达式1只会执行一次:在循环开始前运行,通常用于定义循环变量。如int a = 1;

  1. 执行表达式2,表达式2是循环结束的判断条件,进入循环前,首先得进行判断。

具体步骤如下:
检查循环条件:每次循环开始前都会判断条件是否为真(如i < 10)
若条件为真‌:执行循环体代码。
‌若条件为假‌:跳出循环,继续执行后续代码

  1. 条件为真,运行循环体语句。
  2. 更新循环变量‌:执行完循环体后,运行表达式3(如i++)。
  3. 重复步骤2-4:重新检查条件表达式,直到条件为假时终止循环。

如以下代码加深理解:

int main() {
  for(int i = 2;i >= 3;i++) {
  		printf("hehe\n");
  }
}

在这段语句中,首先初始化表达式int i = 2;然后再执行判断语句,此时判断语句为i需要大于等于3,但是i的值为2,2不是大于等于3,此时判断语句为假,跳出循环,不再执行循环体语句。

4.2 代码练习

练习1:

打印1-10数字

#include<stdio.h>  
int main()  
{
	int i = 0;  
	for (i = 1; i <= 10; i++)  
	{
		printf("%d ",i);  
	}
	return 0;  
}

五、do while循环

5.1 语法形式

特点:循环体至少执行一次

do
{
	语句
} while (表达式);

do while语句与另外两个循环的不同在于,它的循环是先进入循环体,执行循环语句,然后再执行while后的判断表达式,表达式为真就会进入下一次循环,表达式为假则不再继续循环。

5.2 代码练习

练习1:

在屏幕上打印1-10的值**

#include<stdio.h>
int main()
{
	int i = 1;
	do
	{
		printf("%d ", i);
			i++;
	}
	while (i <= 10);
	return 0;
}

在这里插入图片描述

练习2:

输入一个正整数,计算这个整数是几位数

#include<stdio.h>  
int main()  
{
	int i = 0;  
	scanf("%d",&i);  
	int count = 0;  

	do
	{
		count++;  
		i = i / 10;  
	} while (i);  
	printf("%d ",count);  
}

六、break和continue在循环语句中的作用与不同

提示:

在c语言循环执行的过程中,如果某些状况发生的时候,需要提前终止循环,这是非常常见的现象。c语言中提供了break和continue两个关键字,就是应用到循环中。

  1. break的作用是用于永久的终止循环,只要break被执行,直接就会跳出循环继续往后执行。
  2. continue的作用是跳过本次循环continue后边的代码,在for和while循环中有所差异。

6.1、while循环中的break和continue

6.1.1 break在while循环语句中:

代码如下(示例):

#include<stdio.h>  
int main()  
{
	int i = 1;  
	while (i <= 10)  
	{
		if (i == 5)  
			break;     
		printf("%d ",i);#   
		i++;   
	}
	return 0;   
}

运行结果:跳过一层循环,直接结束一层循环,向后继续执行#
在这里插入图片描述

6.1.2 continue在while循环中

代码如下(示例):

#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然后死循环了。
在这里插入图片描述


6.2、for循环中的break和continue

6.2.1 break在for循环中

代码如下(示例):

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

运行结果:
在这里插入图片描述

6.2.2 continue在for循环中

代码如下(示例):

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

运行结果:
在这里插入图片描述

6.2.3 总结

1,当某个条件发生时,我们再也不让这个循环执行,就用break。
2,当某个条件发生时,暂时在这一次循环不执行,就用continue。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

The Art Of Code

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值