java - 为什么运行程序会卡死

查看:910
本文介绍了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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆