C语言:三种常用基本结构

C语言包括三种基本结构:顺序结构、分支结构、循环结构。
其实不只是C语言,很多编程语言都支持这三种基本结构。

1、顺序结构: 程序由上往下一路执行下来。
参考代码:

#include <stdio.h>

int main()
{
	printf("Code 1\n");
	printf("Code 2\n");

	// other code ...

	printf("Code n\n");
	return 0;
}

运行结果:

Code 1
Code 2
Code n

2、分支结构: 根据设定的条件让程序执行时选择不同的语句执行。其中,包含 if 和 switch 两种语句。
2.1、if 可以与 else if 和 else 搭配,参考代码:

#include <stdio.h>

int main()
{
	int a = 10;
	
	// 单个if语句 
	if(a >= 10)
	{
		printf("1: a >= 10\n");
	}
	
	// if与else搭配
	if(a >= 10)
	{
		printf("2: a >= 10\n");
	}
	else
	{
		printf("3: a < 10\n");	
	} 
	
	// "if"、"else if"与"else"搭配:
	// "if"必须要有,"else if"语句可以没有或者有多个,"else"可以没有
	if(a > 10)
	{
		printf("4: a > 10\n");
	}
	else if(10 == a)
	{
		printf("5: a == 10\n");	
	}
	else
	{
		printf("6: a < 10\n");
	}
	
	return 0;
}

运行结果:

1: a >= 10
2: a >= 10
5: a == 10

注意:C语言中规定if-else的配对原则是else字句与其之前最近的未被配对的if结合。 例如以下代码:

#include <stdio.h>

int main()
{
	int x = 0;
	int y = 1;
	
	if(x)
		if(!x)
			y = 10;
	else
		y = 0;
		
	printf("y = %d\n", y);
	
	return 0;
}

输出的结果是:

y = 1

结果或许不是你想要的,这是因为else是与其之前最近未被配对的if结合,它不像Python一样靠缩进(Tab键)来确定配对关系。
以上代码的的搭配关系实际效果是:

#include <stdio.h>

int main()
{
	int x = 0;
	int y = 1;
	
	if(x)
	{
		if(!x)
			y = 10;
		else
			y = 0;
	}
		
	printf("y = %d\n", y);
	
	return 0;
}

其实为避免发生类似错误,根据实际情景,可适量使用花括号“{ }”来将语句包含起来,不仅关系明确,还方便以后需求进行增加或减少某些代码。
2.2、switch选择结构
参考代码:

#include <stdio.h>

int main()
{
	int x = 1;
	
	switch(x)
	{
		case 0:
			printf("x = 0\n");
			break;
		case 1:
			printf("x = 1\n");
			break;
		case 2:
			printf("x = 2\n");
			break;
		default:
			printf("x = 其他\n");
			break;
	}

	printf("switch语句结束!\n");
	return 0;
}

输出结果:

x = 1
switch语句结束!

注意:
① 由于存在数据的精度问题,switch的参数不能为实型;
② 每个条件后面需要检查是否需要break语句,否则不会跳出switch语句直至执行到break语句或switch执行完毕。当然,break语句不是必须的,反而有时故意不加上break来实现预想效果。
③ 末尾最好加上default语句,即使不需要处理任何事情。如果不加上别人看你的代码还有可能以为你忘记了哈哈。
例如以下代码:

#include <stdio.h>

int main()
{
	int x = 1;
	
	switch(x)
	{
		case 1:
		case 2:
		case 3:
		case 4:
		case 5:
			printf("工作日");
			break; 
		case 6:
		case 7:
			printf("周末\n");
			break;
		default:
			printf("错误\n");
			break;
	}

	return 0;
}

输出结果:

工作日

3、循环结构: 通常用来处理重复处理某段代码。C语言中包含三种常见用法和一种不推荐的goto:
① for循环

for(语句1; 语句2; 语句3)
{
	语句4// 其他代码
}

for语句执行的顺序是:1243 243 243 2(不符合条件跳出)
语句1通常用来做某些初始化,可以省略,但后面分号“;”不可以省略;
语句2起到判断作用,如果为真执行方括号“{}”里面的语句,假则退出循环;
语句3通常用来更新条件
语句4是循环执行的代码;

② while循环(先判断后执行)

while(判断条件)
{
	// 需要重复处理的代码
}

③ do-while循环(先执行一次之后再判断)

do{
	// 需要重复处理的代码
}while(判断条件);

例如以下代码:

#include <stdio.h>

int main()
{
	int x = 0;
	int y = 0;
	int z = 0;
	
	for(x = 0; x < 3; x++)
	{
		printf("for循环\n");
	}
	
	while(y < 3)
	{
		printf("while循环\n");
		y++;		// 别忘了更新y的值	
	}
	
	do{
		printf("do-while循环\n");
		z++;		// 别忘了更新z的值	
	}while(z < 3);	// 别忘了有分号“;”

	return 0;
}

运行结果:

for循环
for循环
for循环
while循环
while循环
while循环
do-while循环
do-while循环
do-while循环

注意:使用循环的时候记得更新条件,也就是上面更新x, y, z的值,否则可能一直循环执行不跳出。
④ goto
goto语句的争论比较激烈。它是无条件跳转语句,正是因为它的限制很弱,它的功能就很强大,不过它使得代码的可读性就变差,所以很久以前就有人主张去掉goto语句。
例如以下代码:

#include <stdio.h>

int main()
{
	int i = 0;
	
label:
	i++;

	if(i < 3)
	{
		printf("i = %d\n", i);
		goto label;	// 跳到label处执行
	}

   return 0;
}

运行结果:

i = 1
i = 2

其实这三种结构不只是C语言中的语法,大多数编程语言都支持,如C++、Java等等,只不过是语法可能会稍微不一样,但原理性的东西都一样。

  • 5
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

R-QWERT

你的鼓励是我最大的动力!

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

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

打赏作者

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

抵扣说明:

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

余额充值