break与continue在for循环中的作用

1.案例分析

1.打印1--10数字

#include
int main()
{
	int i = 0;
	for (i = 1; i <= 10; i++)
	{
		printf("%d", i);
	}
	return 0;
}

2.变式:打印1--4

#include
int main()
{
	int i = 0;
	for (i = 1; i <= 10; i++)
	{
		if (i == 5)
			break;
		printf("%d", i);
	}
	return 0;
}
  • 通过代码的不同可以看出,break在for循环中的作用就是当条件符合时直接跳出循环

3.变式:打印1--10没有5

#include
int main()
{
	int i = 0;
	for (i = 1; i <= 10; i++)
	{
		if (i == 5)
			continue;
		printf("%d", i);
	}
	return 0;
}
  • 通过这个代码可以看出,continue的作用时跳过本次循环,回到for循环的条件语句中,for循环的条件语句有++功能,相比较while循环而言,减少了写出死循环的困扰,结构上更加优化。

2.一些for循环的变种

1.省略

#include
int main()
{
	for (;;)
	{
		printf("hehe");
	}
	return 0;
}
  • for循环的初始化,判断和调整三个部分都可以省略,但是省略判断部分,判断变成恒为真,就会陷入死循环

2.初始化省略

#include
int main()
{
	int i = 0;
	int j = 0;
	for(; i<3; i++)
		for(;j<3; j++)
	{
		printf("hehe\n");
	}
	return 0;
}

break与continue在for循环中的作用_第1张图片

  •  如果正常初始化不省略,应该打印9个hehe,当省略之后,当第一次循环结束之后,j没有被初始化,那么第二次在进入循环的时候,j刚开始就等于3,直接跳出循环。

3.判断语句的不正常使用

#include 
int main()
{
	int i = 0;
	int k = 0;
	for (i = 0, k = 0; k = 0; i++, k++)
		k++;
	return 0;
}
  • 判断语句中的判断操作符写成了赋值操作符,使得判断结果为假,直接跳出循环。

你可能感兴趣的:(C语言,算法,c++,c语言)