回 帖 发 新 帖 刷新版面

主题:请教System.in.read()的用法?

以下是接收用户输入的数据并求出该数范围内素数的程序,可是编译通过后无论输入什么数返回的信息都是一样的,请问下这里面的System.in.read()出了什么问题?它的用法应该注意些什么?

class Prime
{
    static void IsPrime(int Max)
    {
        FirstLoop:
        for(int i=1;i<Max;i+=2)
        {
            for(int j=2;j<i;j++)
            {
                if(i%j==0)
                continue FirstLoop;
            }
            System.out.println(i+" is prime.");
        }
    }
    public static void main(String[] args)
    {
        try
        {
            int Max=System.in.read();
            IsPrime(Max);
        }
        catch(Exception e)
        {                                e.printStackTrace();
        }
    }
}

回复列表 (共2个回复)

沙发

不要像C++中那样使用JAVA的标准输入

用DataInputString dis=new DataInputString(System.in)
dis.readInt();

自己看看I/O这章吧

板凳

int Max=System.in.read();
IsPrime(Max);
改为:
            InputStreamReader isr = new InputStreamReader(System.in);
            BufferedReader br = new BufferedReader(isr);
            Integer Max = Integer.valueOf(br.readLine());            
            IsPrime(Max.intValue());


System.in.read();只读取第一位

我来回复

您尚未登录,请登录后再回复。点此登录或注册