循环语句知识 求大佬解决

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函数语句
...全文
183 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
自信男孩 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

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧