c语言中的三种基本结构

1.顺序结构

顺序结构,就是程序从上到下,依次执行。

流程图

例子

int main()
{
	int a = 2; 
	int b = 3;
	int c = a + b; 
	printf("%d %d %d", a, b, c);
	return 0;
}

2.选择结构

选择结构,顾名思义就是代码在运行的时候,根据所给的条件来执行程序。

流程图

要实现这个结构,我们可以采用if语句,switch语句

if语句

if语句中,非0为真,0为假。if语句中有三种

第一种

if(表达式) 

          语句;

当表达式为真时,则会执行语句,表达式若是假(0)则不执行。

注意:一条if语句后只能跟一条语句,如果要执行多条语句,则需要花括号{}把语句包裹起来。{}包裹起来的称为代码块。

例子:判断一个数是否为偶数

int main()
{
	int i = 2;
	if (i % 2 == 0)
		printf("%d是偶数", i);
	return 0;
}

输出结果

第二种(双分支)

if(表达式)

             语句;

else

            语句;

依旧是前面的例子,判断一个数是偶数还是奇数

int main()
{
	int i = 0;
    scanf("%d",&i);
	if (i % 2 == 0)
		printf("%d是偶数", i);
	else
		printf("%d是奇数", i);
	return 0;
}

第三种(多分支)

if(表达式)

               语句;

else if(表达式)

              语句;

else

             语句;

例子:判断输入的字符是字母,数字,还是其他特殊符号

int main()
{
	char c;
	scanf("%c", &c);
	if (c >= 'a' && c <= 'z' || c >= 'A' && c <= 'Z')
		printf("%c是字母", c);
	else if (c >= '0' && c <= '9')
		printf("%c是数字", c);
	else
		printf("%c是其他字符", c);
	return 0;
}

 switch语句

基本形式:
switch(整型表达式) (常量表达式一般是*,/,%,+,-)

{

           case (整型常量表达式):

          break;

           case(整型常量表达式):

          break;

          default:

           break;

}

当switch后的整型表达式=case中的整型常量表达式就会执行对应的分支。如果找不到,则会执行default分支。

在switch中,只有使用break才能跳出switch语句,如果一个case后没有break语句,代码会继续执行,直到遇到break;当然,也不是每个case后都一定得有break;看情况加break;

例子:输入1-7内其中一个数,打印对应的星期几

int main()
{
	int day = 0;
	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;
	default:
		printf("输入有误\n");
		break;
	}
	return 0;
}

如果改成周一到周五为工作日,周六周日为休息日

代码如下

int main()
{
	int day = 0;
	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;
	default:
		printf("输入有误\n");
		break;
	}
	return 0;
}

循环结构

循环结构就是一直循环,直到条件为假就跳出循环。就像你每天坚持做同样一件事,直到你成功了,就跳出循环了

流程图

while语句

基本形式:

while(表达式)

          循环语句;(若跟有多条循环语句,用花括号{}包裹起来)

例子:计算1到100的和(结果5050)

int main()
{
	int i = 0,sum=0;
	while (i <= 100)    //只有i<=100才可循环,当1=101时明显大于100,跳出循环
	{
		sum = sum + i; //把i的值加起来
		i++;           //使用后i+1
	}
	printf("1到100的和为%d", sum);//总和5050
	return 0;
}

do...while语句

基本形式:

do{

      循环语句;

}while(表达式);

do...while语句与while的不同点就在do...while循环至少执行一次,先做后循环判断。

int main()
{
	int i = 0;
	do
	{
		printf("Hello World!\n");//先打印后循环判断
	} while (0);
	return 0;
}
结果 Hello World!

例子:打印1到100的和也可以写成do...while语句

int main()
{
	int i = 0,sum=0;
	do
	{
		sum = sum + i;;
		i++;
	} while (i <= 100);
	printf("%d", sum);
	return 0;
}

for语句

基本形式:

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

表达式1可写变量的初始化,表达式二写循环判断条件;表达式三写变量的增值。如for(i=1;i<10;i++),i可以在for内定义,也可在for外定义。

流程图

例子:打印阶乘

#include <stdio.h>
int main()
{
	int i = 0, n = 0;
	int sum = 1;  
	scanf("%d", &n);
	for (i = 1; i <= n; i++)
	{
		sum *= i;
	}
	printf("%d!=%d", n, sum);
	return 0;
}

for的表达式也可以写在for(;;)外边,上面的代码也可以改成如图

int main()
{
	int i = 1, n = 0;
	int sum = 1;
	scanf("%d", &n);
	for (; i <= n;)
	{
		sum *= i;
		i++;
	}
	printf("%d!=%d", n, sum);
	return 0;
}

当然,如果没有表达式2的判断条件,可以运行,但会死循环。

goto 语句

goto语句可实现在同一个函数跳转到设置好的标号处,当我们在写多重for循环时,如果想要跳出循环可用goto语句。一般挺少用goto语句,容易引起错误。

int main()
{
	for (int i = 0; i < 10; i++)
	{
		for (int j = 0; j < 10; j++)
		{
			for (int k = 0; k < 10; k++)
			{
				for (int m = 0; m < 10; m++)
				{
					goto next;
                    printf("跳出去就不打印这句话");
                 }
		
			}
		}
	}
	next :
		printf("跳出来了");
		return 0;
}

结果

目录

1.顺序结构

流程图

2.选择结构

流程图

if语句

第一种

第二种

第三种

 switch语句

循环结构


  • 8
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

zhyhgx

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

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

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

打赏作者

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

抵扣说明:

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

余额充值