C语言学习:7、break与continue的用法

        前面讲到的循环体,貌似能解决生活中的很多问题,毕竟生活中很多事情是在重复的。但有时候也会有些小插曲,比如你在日复一日的上班,但某一天又特殊的事情你失业了,不就没班上了吗,那就得跳出那个上班的循环了,C语言也有这样的跳出机制。

break

        在前面学习switch语句的时候,接触过break,就是跳出switch,在循环结构中,break也有相同的作用,跳出循环,管你循环条件是真是假。

程序示例1:累加到100,到100强制跳出while循环

#include 

int main()
{
	int i = 1;
	int sum = 0;
	while (1)
	{
		sum = sum + i;
		if (i == 100)
			break; //跳出while循环
		i++;
	}
	
	printf("i = %d\n", i);
	printf("sum = %d\n", sum);

	return 0;
}

程序示例2:猜数字游戏

#include 

int main()
{
	int target = 30;
	int input= 0;
	for(;;)
	{
		printf("请输入一个数字:");
		scanf_s("%d", &input);

		if (input == target)
			break;
	}
	
	printf("target = %d\n", target);

	return 0;
}

如果switch与循环嵌套在一起怎么办,break怎么跳?

       1、 就近原则:break离哪个关键字近,就跳出哪个。

       2、什么是关键字:switch、 while 、for这种的就是关键字。

程序示例3:判断10以内的奇数与偶数

#include 

int main()
{
	int i = 0;
	
	for(i=1; i<=10; i++)
	{
		switch (i % 2)
		{
		case 0:
			printf("%d 是偶数\n", i);
			break; //跳出switch
		case 1:
			printf("%d 是奇数\n", i);
			break; //跳出switch
		}
	}

	return 0;
}

程序示例3:

#include 

int main()
{
	int i = 0;
	int k = 0;
	
	printf("请输入一个数字\n");
	scanf_s("%d",&i);
	switch (i % 2)
	{
	case 0:
		printf("case 0\n");

		for (k = 0; k < 2; k++)
			if (k)
				break;//跳出for,那case 0就没有break了,满足case 0的时候case 1也会执行
	case 1:
		printf("case 1\n");
		break;
	}

	return 0;
}

输入奇数的时候只打印case1,输入偶数,打印了case 0 和case1

continue

咋一看continue不是继续的意思吗,这么跟break扯上关系了?

continue:在循环体中,continue之后的语句不用执行了,进入下一轮条件判断,重新循环;

break是结束整个循环,

continue只是结束当前循环条件中的语句,continue之后的语句就不用执行了。

continue的作用效果可以比较程序示例4和程序示例5的输出结果

程序示例4:

#include 

int main()
{
	int i = 0;
	
	for (i = 1; i <= 5; i++)
	{
		printf("序列%d开始\n",i);
		
		printf("序列%d结束\n", i);
		
	}

	return 0;
}

输出结果

序列1开始
序列1结束
序列2开始
序列2结束
序列3开始
序列3结束
序列4开始
序列4结束
序列5开始
序列5结束

把示例4的代码稍微修改一下,加个continue,观看输出结果。

程序示例5:

#include 

int main()
{
	int i = 0;
	
	for (i = 1; i <= 5; i++)
	{
		printf("序列%d开始\n",i);
		continue; //循环体后面的内容不用执行了,重新去判断条件
		printf("序列%d结束\n", i);
		
	}

	return 0;
}

输出结果是

序列1开始
序列2开始
序列3开始
序列4开始
序列5开始

练习:打印1000以内能被7整除的整数,并统计数量

分析:

1使用循环体遍历1--1000;

2、使用分支选择结构、判断能被7整除的数,能整除的打印并统计,不能整除的直接判断下一个数

程序示6:

#include 

int main()
{
	int i = 0;
	int n = 0;
	
	for (i = 0; i <= 1000; i++)
	{
		if (i % 7)
			continue; //如果i%7不等于0,说明不能被7整除,那就直接判断下一个数
		printf("%d能被7整除\n", i);

		n++;
	}
	printf("1000以内能被7整除的数共有%d个\n", n);
	return 0;
}

你可能感兴趣的:(C语言学习笔记,学习,c语言)