c语言分支循环语句

文章目录

          分支语句
          循环语句
          goto语句

分支语句

1.if-else 语句

if-else语句是由if、else(else if)三部分组成的语句快,我们可以把if和else简单翻译成“如果”和“否则”。我在这里把if-else语句分成了三种:单if语句、if-else双分支语句、if - else if - else多分支语句。
1)单if语句:即只有if的分支语句
语法

if(条件表达式)
{
执行的语句;
}

代码案例

#include <stdio.h>
int main()
{
  int age = 18;
  if (age >= 18)
     {
      printf("可以考驾照");
     }
  return 0;
}   

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

代码分析:这里我们赋给age的值是18,所以条件表达式为真,执行if后面花括号里的语句。如果条件表达式为假,则跳过。

2)if-else双分支循环语句
双分支循环语句相当于一种判断的关系,非此即彼,一定只执行if和else中的其中一条语句。
语法规则:
if(条件表达式)
{
执行语句1;
}
else
{
执行语句2;
}

如果条件表达式为真,执行if后面的语句,如果为假执行else后面的语句。

代码案例:

#include<stdio.h>
  int main()
  {
	  int age = 0;
	  scanf("%d",&amp;age);
	  if (age >= 18)
		  printf("adult\n");//成年
	  else
		  printf("nonage\n");//未成年
  }

运行结果:在这里插入图片描述
3)if-else if-else多分支语句
多分支语句相当于是多选题。
语法规则:
if(条件表达式)
{
执行语句1;
}
else if(条件表达式2)
{
执行语句2;
}
···
else if(条件表达式n)
{
执行语句n;
}
else
{
执行语句n+1;
}
前n个条件表达式,哪条为真就执行哪条语句。如果前n个都为假,则执行else后面的语句。

代码案例:

int main()
{
	int score = 80;
	if (score >= 0 &amp;&amp; score < 60)
		printf("挂科\n");
	else if (score >= 60 &amp;&amp; score < 70)
		printf("中等\n");
	else if (score >= 70 &amp;&amp; score <= 90)
		printf("良好\n");
	else if (score >= 90 &amp;&amp; score <= 100)
		printf("优秀\n");
	else
		printf("成绩出错\n");
}

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

2.switch语句

switch语句是一种用于处理多分支的语句。
语法规则:
switch(整形表达式)
{
case整形常量表达式1:
语句1;
case整形常量表达式2:
语句2;
}

switch后面的()内是整形表达式,意思是表达式的计算结果的数据类型必须是整形,case后面的表达式是整形常量表达式。
这个语法我们这样理解:switch的英文意思是开关,那么switch后面整形表达式的值代表的就是这个开关在哪里被打开。

代码案例:

int main()
{
	int day = 3;
	switch (day)
	{
	case 1:
		printf("工作\n");
	case 2:
		printf("工作\n");
	case 3:
		printf("工作\n");
	case 4:
		printf("工作\n");
	case 5:
		printf("工作\n");
	case 6:
		printf("休息\n");
	case 7:
		printf("休息\n");
	}
	return 0;
}

在这里插入图片描述
从上面的程序可以看出,程序是从上往下走的,从入口(day = 3,也就是case = 3)开始,往下一行一行执行。但是这样就无法让程序终止,程序一直执行到最后一行。所以这里就要用到break这个关键字。

break关键字

break充当程序出口的角色。让程序读到它时直接跳出自己当前所在的子程序。

代码案例:

int main()
{
	int day = 6;
	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;
	}
	return 0;
}

在这里插入图片描述
程序从case 6入口进入,然后读了一句printf(“休息\n”),再读到break出口出选择程序块。

default子句

default子句和if-else中的else作用类似,都是在前面的所以条件不满足时才会执行。
代码案例:

int grade = 85;

  switch (grade) {
    case 90:
      printf("A");
      break;
    case 80:
      printf("B");
      break;
    case 70:
      printf("C");
      break;
    default:
      printf("D");
      break;
  }

在这里插入图片描述

3分支语句的嵌套

分支语句也就是if语句和switch语句,都可以嵌套。
代码案例:

int main()
{
  int a = 1;
  int b = 0;
  if (a == 1)
  {
  	printf("上大学\n");
  	printf("你是否要努力学习?(1/0):");
  	scanf("%d", &amp;b);
  	if (b == 1)
  		print("找到好工作\n");
  	else
  		printf("放飞自我,毕业即失业\n");
  }
  return 0;
}

在这里插入图片描述

swtich嵌套
#include <stdio.h>
int main() {
	int x = 3;
	int y = 3;
	switch (x % 2) {
	case 1:
		switch (y)
		{
		case 0:
			printf("first");
		case 1:
			printf("second");
			break;
		default: printf("hello");
		}
	case 2:
		printf("third");
	}
	return 0;
}

在这里插入图片描述

循环语句

循环语句就是一些重复执行的语句。C语言中的循环结构有三种常见的语句,分别是while、for、do-while循环,他们大同小异,结构上基本分为初始化部分,条件判断部分,调整部分,下面来看一下。
1) while循环语句
语法规则:
while(表达式)
{
循环语句;
}
其他语句
这里的while循环是先判断表达式的真假,再决定是否执行循环语句,如果为真则执行,为假则不执行。
代码案例:

#define  _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int main()
{
	int i = 1;//初始化部分
	while (i <= 10)//条件判断部分
	{
		printf("%d ", i);//循环体
		i++;//调整部分
	}
	return 0;
}

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

while语句中的break和continue

接下来可以看看while循环的执行流程图:
在这里插入图片描述
break在while循环中的作用:由图我们可以看出,当循环中遇到break时,就会终止循环。
代码案例:

nt main()
{
	int i = 1;
	while (i <= 10)
	{
		if (i == 5)
			break;//永久终止循环
		printf("%d ", i);
		i = i + 1;
	}
	return 0;
}

结果:在这里插入图片描述
由此可以看出,break是用于永久终止循环。

continue在while循环中的作用:continue用于终止本次循环,跳过后面的语句来到while语句的判断部分。
代码案例:

int main()
{
	int i = 1;
	while (i <= 10)
	{
		if (i == 5)
			continue;
		printf("%d ", i);
		i = i + 1;
	}
	return 0;
}

在这里插入图片描述
注解:当i = 5的时候,后面的语句直接跳过,再回到while循环的判断语句中执行,此时i仍然是等于5,继续跳过,这样下去一直是死循环。

for循环语句

语法:
for(表达式1;表达式2;表达式3)
{
循环语句;
}
其中表达式1为初始化部分,用于初始化循环变量;表达式2为条件判断部分,用于判断循环时候终止;表达式3为调整部分,用于循环条件的调整。
代码案例:

int main()
{
	int i = 0;
	for (i = 1/*初始化*/; i <= 10/*判断部分*/; i++/*调整部分*/)
	{
		printf("%d ", i);
	}
	return 0;
}

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

goto语句

goto语句相当于是一个传送门,可以直接直接改变代码执行的逻辑,即可以直接跳到目标代码去执行。但它如一把双刃剑,用得好编程效果很不错,滥用就会自废武功。
语法如下:
goto标记名称;
标记名称:其他语句;
代码案例:

int main()
{

		int age = 0;
	again:
		scanf("%d", &amp;age);
		if (age < 18 &amp;&amp; age >= 1)
			printf("未成年\n");
		else if (age >= 18 &amp;&amp; age <= 121)
			printf("成年\n");
		else
		{
			printf("输入错误,请重新输入\n");
			goto again;
		}
	return 0;
}

结果:
在这里插入图片描述
我们输入180的时候,执行else里的语句,先执行printf(“输入错误,请重新输入\n”)然后执行goto again,again在程序最开始,所以我们可以重新输入然后继续进行选择判断。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值