Java 如何计算while循环运行了多少次?
我需要编写一个程序,使用do while循环,在新行上打印25个素数。我已经弄明白了一切,除了打印出25个数字。然而,这个程序只给我25的素数,而不是25的素数 我设置了一个变量count,使其在每次循环运行时都增加,结果相同。这是我的代码很抱歉这么长,我会缩短它,但我担心整个事情可能会搞砸:Java 如何计算while循环运行了多少次?,java,Java,我需要编写一个程序,使用do while循环,在新行上打印25个素数。我已经弄明白了一切,除了打印出25个数字。然而,这个程序只给我25的素数,而不是25的素数 我设置了一个变量count,使其在每次循环运行时都增加,结果相同。这是我的代码很抱歉这么长,我会缩短它,但我担心整个事情可能会搞砸: int firstNum; int secondNum = 1; int num; int count = 0; System.o
int firstNum;
int secondNum = 1;
int num;
int count = 0;
System.out.println("Sample run: \n\nPrime numbers");
do {
num = 0;
firstNum = 2;
while (firstNum <= secondNum / 2) {
if (secondNum % firstNum == 0) {
num++;
count++;
break;
}
firstNum++;
}
if (num == 0 && secondNum != 1) {
count++;
System.out.print("\n" + secondNum + " ");
}
secondNum++;
} while(count < 25);
}
}
下面是一个示例,演示如何在某个循环中迭代固定次数,然后分别计算下一个素数。这里我显然没有计算任何素数,只是展示了如何分离循环数量的两个关注点,并确定下一个素数
public static void main(String[] args) {
int prime = 0;
for (int k = 1; k <= 25; k++) {
prime = findPrimeAfter(prime);
System.out.println("#" + k + ": " + prime);
}
}
private static int findPrimeAfter(int lastPrime) {
// TODO: find the next prime that is greater than "lastPrime"
return 0;
}
您需要删除count++;在第一个if块中,得到25个素数
更新代码:
1使用for循环代替while循环;2仅在需要时声明变量,而不是在开始时声明。您的程序将在数量级上更易于理解。
int firstNum;
int secondNum = 1;
int num;
int count = 0;
System.out.println("Sample run: \n\nPrime numbers");
do {
num = 0;
firstNum = 2;
while (firstNum <= secondNum / 2) {
if (secondNum % firstNum == 0) {
num++;
// count++; // <--- Remove this.
break;
}
firstNum++;
}
if (num == 0 && secondNum != 1) {
count++;
System.out.println(secondNum); // Use println() for new line.
}
secondNum++;
} while(count < 25);
}