while中的continue和if中的continue的區別

n8765發表於2015-04-29
#include<stdio.h>
int main()
{
	int n;
	for(n=100;n<=200;n++)
	{
if(n%3==0)
		continue;
	printf("%d",n);
	}
	printf("\n");
	return 0;
}
//輸出100到200之間不能被3整除的數   

#include<stdio.h>
int main()
{
	int n;
	for(n=100;n<=200;n++)
	{
		while(n%3==0){
			continue;}
		printf("%d",n);
	}
	printf("\n");
	return 0;
}//輸出100到200之間不能被3整除的數   

第一個程式第七行用的if語句  第二個程式第七行用的while語句
用第一個程式可以輸出100到200之間所有不能被3整除的數     可是用第二個只能輸出100 101就沒了,為什麼?


continue只負責讓一個迴圈語句產生”跳回“,即最接近continue的裡層迴圈語句。

你第一個continue的,是for(n=100;n<=200;n++) (因為if不是迴圈語句,continue不會找它)

你第二個continue的,是while(n%3==0)迴圈,因為這個是距離continue最近的內層迴圈。

1
2
while(n%3==0){
continue;}//當n=102的時候,這個while會無限次迴圈,當機了

相關文章