为什么下面的 for 循环不执行超过第一次迭代 谁能帮我解决这个问题。 提前致谢。
输出:
Enter the Range of Numbers
Enter the First Number: 2
Enter the Last Number: 30
The non-prime numbers between 2 and 30 are:
.start for loop...............i=2
.p....=3
end of for loop: i....=2
.start for loop...............i=3
在此之后,FOR 循环不再执行。为什么?
#include <stdio.h>
int main(void)
{
int start, end, i, remain, k, p, count = 0;
printf("\nEnter the Range of Numbers\n\n");
printf("Enter the First Number: ");
scanf("%d", &start);
printf("Enter the Last Number: ");
scanf("%d", &end);
int flag;
printf("The non-prime numbers between %d and %d are:\n", start, end);
for (i = start; i <= end; i++)
{
printf("\n.start for loop...............i=%d\n", i);
// p = 2;
for (p = 2; p<i;)
{
remain = i%p;
if (remain == 0)
break;
//p++;
}
p++;
printf("\n.p....=%d \n", p);
if (i == p)
// if(remain==0)
{
printf("%d ", i);
count++;
}
printf("\n end of for loop: i....=%d\n", i);
}
printf("\n............\n");
}
最佳答案
你的循环代码
for (p = 2; p<i;)
{
remain = i%p;
if (remain == 0)
break;
//p++;
}
不完整。
p
在 for
语句中不可更改,在正文中的 p++
被注释。因此,您可能会遇到无限循环。
考虑以下更改:
remain = 1;
for (p = 2; p<i && remain; p++)
{
remain = i % p;
}
甚至(没有remain
)
for (p = 2; p < i && i%p; p++);
关于c - break in side for loop - 在 break 语句之后不在 for 循环之外打印任何内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38968093/