java - 为什么运行程序会卡死
本文介绍了java - 为什么运行程序会卡死的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
才学java,写了求素数的小程序,直接卡死。
package Isprime;
public class Isprime {
public static void main(String[] args) {
int max=10000;
boolean [] isPrime=new boolean [max+1];
for(int i = 0;i<isPrime.length;i++)
{
isPrime[i]=true;
}
for(int i = 0;i<Math.sqrt(max);i++)
{
if(isPrime[i])
{
for(int j=i*i ;j<=max;j+=2*i)
{
isPrime[j]=false;
}
}
}
for(int i=0;i<=max;i++)
{
if(isPrime[i])
System.out.print(i+",");
}
}
}
解决方案
for (int i = 0; i < Math.sqrt(max); i++) {
if (isPrime[i]) {
for (int j = i * i; j <= max; j += 2 * i) {
isPrime[j] = false;
}
}
}
当i等于0时候,j也为0,j += 2*i
永远为0,因此j永远是<=max的,因此死循环了。
这篇关于java - 为什么运行程序会卡死的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文