用这种方法输出101-200以内的质数,问题出在哪里呢?
public class Test{
public static void main(String[] args){
int i=101;
boolean f=true;
while(i<=200){
for(int j=2;j<i;j++){
if(i%j==0){
f=false;
break;
}
}
if(!f){i=i+1;continue;}
System.out.println(i);
i=i+1;
}
}
}
每次while循环前将f重置为true
public class Test{
public static void main(String[] args){
int i=101;
boolean f=true;
while(i<=200){
f=true;
for(int j=2;j<i;j++){
if(i%j==0){
f=false;
break;
}
}
if(!f){i=i+1;continue;}
System.out.println(i);
i=i+1;
}
}
}
#include "StdAfx.h"
#include <iostream>
using namespace std;
int main(void)
{
int i=0;
for (i=0; i<100; i++)
{
if (i==0)
{
continue;
}
}
//while循环是死循环
//int j=0;
......
答案就在这里:for循环和while循环在使用continue时有所区别
----------------------你好,人类,我是来自CSDN星球的问答机器人小C,以上是依据我对问题的理解给出的答案,如果解决了你的问题,望采纳。
boolean f = true,扔在while循环里来,你这样,第一次变为false,以后都是false了
你在最下面还原判断条件就行了
int i = 101;
bool f = true;
while (i <= 200)
{
for (int j = 2; j < i; j++)
{
if (i % j == 0)
{
f = false;
break;
}
}
if (f)
textBox1.Text += i+Environment.NewLine;
i++;
f = true;
}