多个for和多个if中的break和continue

一、1个for

break:直接跳出,结束循环;continue:跳出本次循环,继续下一次循环,直至循环完毕。

int arr[] = {1,2,3,4,5,6,7,8,9,10};
char ch[] = { 'a','b','c','d','e','f','g' };

void test01()
{
	cout << "有一个for的break :" << endl;
	for (int i = 0; i < sizeof(arr)/sizeof(arr[0]); i++)
	{
		if (arr[i] == 5)
		{
			break;
		}
		cout << arr[i] <<"  ";
		
	}
	cout << endl;

	cout << "有一个for的continue :" << endl;
	for (int i = 0; i < sizeof(arr) / sizeof(arr[0]); i++)
	{
		if (arr[i] == 5)
		{
			continue;
		}
		cout << arr[i] << "  ";
	}
	cout << endl;
}

代码截图:
在这里插入图片描述

break:当for循环值为5,触发if判断条件,break跳出for循环,循环结束。

continue:当for循环值为5,触发if判断条件,continue跳出for循环中剩下的部分,也就没有打印5。接下来,继续进行for循环,此时值为6。

二、2个for

break/continue 跳出了内部的for,还在外部的for中循环。

int arr[] = { 1,2,3,4,5,6,7,8,9,10 };
char ch[] = { 'a','b','c','d','e','f','g' };

void test02()
{
	cout << "有2个for的break :" << endl;
	for (int i = 0; i < sizeof(arr) / sizeof(arr[0]); i++)
	{
		for (int j = 0; j < sizeof(ch) / sizeof(ch[0]); j++)
		{
			if (arr[i] == 5 && ch[j] == 'e')
			{
				break;
			}
			cout << arr[i] <<ch[j]<< "  ";
		}
		cout<< "洛神!!!" << endl;
	}
	cout << endl;

	cout << "有2个for的continue :" << endl;
	for (int i = 0; i < sizeof(arr) / sizeof(arr[0]); i++)
	{
		for (int j = 0; j < sizeof(ch) / sizeof(ch[0]); j++)
		{
			if (arr[i] == 5 && ch[j] == 'e')
			{
				continue;
			}
			cout << arr[i] << ch[j] << "  ";
		}
	}
	cout << endl;
}

代码截图:
在这里插入图片描述
break:当第一个for循环值为5,第二个for循环值为d,接下第二个for循环值为e时,触发if判断条件,break跳出第二个for循环。但“ 洛神!!!”在第二个for循环之外,所以打印了。接下来,第一个for循环值为6,第二个for循环值为a。也就是图中的6a。

continue:当第一个for循环值为5,第二个for循环值为d,接下第二个for循环值为e时,触发if判断条件,continue跳出第二个for循环中剩下的部分。接下来,继续进行第二个for循环,此时值为f。也就是图中的5f。

三、2个for和2个if

break/continue 跳出了内部的for,还在外部的for中循环------break、continue和if无关,只针对for循环而言。

int arr[] = { 1,2,3,4,5,6,7,8,9,10 };
char ch[] = { 'a','b','c','d','e','f','g' };

void test03()
{
	cout << "有2个for2个if的break :" << endl;
	for (int i = 0; i < sizeof(arr) / sizeof(arr[0]); i++)
	{
		for (int j = 0; j < sizeof(ch) / sizeof(ch[0]); j++)
		{
			if (arr[i] == 5)
			{
				if (ch[j] == 'e')
				{
					break;
				}
				cout << arr[i] << ch[j] << endl;
			}
			cout << arr[i] << ch[j] << "  ";
		}
	}
	cout << endl;

	cout << "有2个for2个if的continue :" << endl;
	for (int i = 0; i < sizeof(arr) / sizeof(arr[0]); i++)
	{
		for (int j = 0; j < sizeof(ch) / sizeof(ch[0]); j++)
		{
			if (arr[i] == 5)
			{
				if (ch[j] == 'e')
				{
					continue;
				}
				cout << arr[i] << ch[j] << endl;
			}
			cout << arr[i] << ch[j] << "  ";
		}
	}
	cout << endl;
}

代码截图:
在这里插入图片描述
break:当第一个for循环值为5,第二个for循环值为d,接下第二个for循环值为e时,触发if判断条件,break跳出第二个for循环。接下来,第一个for循环值为6,第二个for循环值为a。也就是图中的6a。

continue:当第一个for循环值为5,第二个for循环值为d,接下第二个for循环值为e时,触发if判断条件,continue跳出第二个for循环中剩下的部分。接下来,继续进行第二个for循环,此时值为f。也就是图中的5f。

四、2个for和3个if

break/continue 跳出了内部的for,还在外部的for中循环------break、continue和if无关,只针对for循环而言。

int arr[] = {1,2,3};
char ch[] = { 'a','b','c'};

void test04()
{
	cout << "有2个for3个if的break :" << endl;
	for (int i = 0; i < sizeof(arr) / sizeof(arr[0]); i++)
	{
		for (int j = 0; j < sizeof(ch) / sizeof(ch[0]); j++)
		{
			if (arr[i] != 2)
			{
				if (ch[j] == 'b')
				{
					if (arr[i] == 3)
					{
						break;
					}
					cout << "我真帅!" << " ";
				}
				cout << arr[i] << ch[j] << " ";
			}
			cout << arr[i] << ch[j] << "  ";
		}
	}
	cout << endl;

	cout << "有2个for3个if的continue :" << endl;
	for (int i = 0; i < sizeof(arr) / sizeof(arr[0]); i++)
	{
		for (int j = 0; j < sizeof(ch) / sizeof(ch[0]); j++)
		{
			if (arr[i] != 2)
			{
				if (ch[j] == 'b')
				{
					if (arr[i] == 3)
					{
						continue;
					}
					cout << "我真帅!" << endl;
				}
				cout << arr[i] << ch[j] << endl;
			}
			cout << arr[i] << ch[j] << "  ";
		}
	}
}

代码截图:
在这里插入图片描述

break:当第一个for循环值为i=3,第二个for循环值为j=b时,触发break,break跳出第二个for循环。此时,第一个for循环完毕,打印到此结束。

continue:当第一个for循环值为i=3,第二个for循环值为j=b时,触发continue,continue跳出第二个for循环中剩下的部分。接下来,继续进行第二个for循环,此时值为j=c。也就是图中的3c。

五、3个for和3个if

以此可以类推,3个for和3个if中,break/continue 跳出了内部的for,还在外部的for中循环------break、continue和if无关,只针对for循环而言。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值