循环语句知识 求大佬解决

onethree07 2017-12-03 04:15:16
#include<stdio.h>
int main()
{
int n;
for(n=100;n<=200;n++)
{
if(n%s==0)
continue;
printf("%d",n);
}
printf("\n");
return 0;
}


当n不能被3整除 就不执行continue语句 为什么还会执行printf函数语句
...全文
152 5 打赏 收藏 举报
写回复
5 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
自信男孩 2017-12-04
不执行continue那么,就会执行后面的printf。continue是停止之后后面的语句,从当前位置跳转到循环体开始位置:修改循环变量,判断循环条件,执行循环体;
  • 打赏
  • 举报
回复
漫天飞花 2017-12-04
if语句只对它下面的第一条语句有效。 不管if条件成不成立,都会执行printf语句。
  • 打赏
  • 举报
回复
动力风暴 2017-12-03
路上两位说的都对。 如果if条件不满足,则不会执行continue语句(if的作用域就continue这一句),后面的printf语句是会执行的。 如果if条件满足,则会执行continue语句,continue执行会跳过本次for循环后面的语句,直接进入下一次for循环。 楼主可以单步调试感受一下,下面三种方式的区别:

#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;
}

#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;
}

#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;
}
另建议楼主写代码if条件时,加上{}养成好的习惯:

#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;
}
  • 打赏
  • 举报
回复
paschen 2017-12-03
虽然不执行continue(不重新开始下一次循环),但还是会继续执行完本次循环,也就是后面的代码仍然会继续执行
  • 打赏
  • 举报
回复
Intel0011 2017-12-03
if(n%s==0) --> if(n%3==0) continue; 意思是能被3整除,执行 continue,即跳过下面的printf,执行下一个循环 不能被3整除时不执行 continue,再执行下面的printf
  • 打赏
  • 举报
回复
相关推荐
发帖
C语言
加入

6.6w+

社区成员

C语言相关问题讨论
社区管理员
  • C语言
  • 小灸舞
申请成为版主
帖子事件
创建了帖子
2017-12-03 04:15
社区公告
暂无公告