分支和循环语句

1.什么是语句?

在C语言中语句可分为以下几种:

  1. 表达式语句
  2. 函数调用语句
  3. 控制语句
  4. 复合语句
  5. 空语句

其中分支和循环语句就属于控制语句。在控制语句中又可分为:

  • 循环执行语句:do while语句、while语句、for语句;
  • 分支语句:if语句、switch语句;

下面首先来讲分支语句,也就是我们常说的选择。

2.分支语句

我们先看一个条件选择:

当我们去逛超市,我们可以选择买好吃的螺蛳粉,也可以选择买薯片。当我们选择不同的路径时,我们得到不同的结果。

2.1 if语句

这里用if语句来实现一个年龄对应问题:

int main()
{
	int age = 0;
	scanf("%d", &age);
	if (age < 18)
	{
		printf("你是未成年\n");
	}
	else
	{
		printf("你已成年\n");
	}
	return 0;
}

从这个代码可以看出。当我们输入不同的年龄,会输出不同的判断。那么我们输入的数据是如何进入选择中的呢?从if语句的基本语法可以看出,当if(表达式)中的表达式为真时,则语句执行。

注:0表示假,非0表示真

这里我们来看两个练习:

1. 判断一个数是否为奇数
2. 输出1-100之间的奇数

代码如下:

//练习:1、判断一个数是否为奇数;2、输出1-100之间的奇数
int main()
{
	int i = 0;
	scanf("%d", &i);
	if (i % 2 != 0)
	{
		printf("%d是奇数\n", i);
	}
	

	int j = 0;
	for (j = 1;j <= 100;i++)
	{
		if (j % 2 != 0)
		{
			printf("%d是奇数\n", j);
		}
	}
	return 0;
}

2.2 switch语句

switch可以用来实现多分支的情况。

以下是一段运用了switch语句的分支代码来打印星期值:

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("weekday\n");
		break;
	case 6:
	case 7:
		printf("weekend\n");
		break;
	}
	return 0;
}

注:不要忘记每条case语句结束时加上break,以避免输出结果不准确的情况。

3.循环语句

以上是一个循环的例子。当我们一直重复做一件事时,这就是循环。循环语句分为三种:

  • while
  • for
  • do while

3.1 while循环

当我们要实现:

在屏幕上打印1-10的数字

可以用while循环来完成:

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

3.1.1 while语句中break和continue的用法

下边是一段含有break语句的代码,他的输出结果是什么样的呢?

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

他的输出结果为:

2 3 4

那么当我们把break换成continue时,他又会输出什么结果呢?

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

当我们换成continue语句,输出结果变成了:

2 3 4 5 6 7 8 9 10 11

由此,我们可以得出结论:

break在while循环中的作用:

在循环中遇到break,则结束循环。所以,他是用来永久的终止循环的。

continue在while循环中的作用:

再循环中遇到continue,则结束当前的循环,重新回到while的判断部分,来进行下一次循环

3.2 for循环


int main()
{
	int i = 1;
	while (i<=10)
	{
		printf("%d ", i);
		i++;
	}
	printf("\n---------------------\n");
	for (i = 1;i <= 10;i++)
	{
		printf("%d ", i);
	}
	return 0;
}

这是分别用while循环和for循环写成的两个输出1-10数字的程序代码。相比之下,while循环中的条件语句彼此之间相隔较远,而for循环中彼此相隔更近。所以for循环风格更胜一筹,使用频率也更高。

3.1.1 for循环语句中break和continue的用法

与while循环中一样,break和continue都是同样的作用。

3.3 do...while循环

3.3.1 do..while循环的特点

int main()
{
	int i = 1;
	do
	{
		printf("%d 哈哈哈\n",i);
		i++;
	} while (i<=10);
	return 0;
}

从do...while语句的语法结构特点来看,无论是否满足循环条件都会先进入循环,当运行到判断语句时,满足的话就输出结果,不满足则退出循环。

所以,do...while循环至少循环一次。

  • 24
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值