日期:2014-05-20  浏览次数:20787 次

简单的函数调用,结果令我很疑惑,帮助啊!
public   static   int   getInputData()   //被调用函数
{
try
{String   s;
System.in.read();
BufferedReader   keyin=new   BufferedReader(new   InputStreamReader(System.in));
s=keyin.readLine();
int   n=Integer.parseInt(s);
return   n;
}
catch(IOException   exp)
{
return   0;
}

}

                  public   static   void   main(String[]   args)//主函数
{try
{int   a,b;
System.out.println( "输入第一个数: ");
System.in.read();
a=getInputData();
System.out.println( "输入第二个数: ");
System.in.read();
b=getInputData();
System.out.println( "a= "+a+ "   b= "+b);
if(a> b)
{
int   t=a;
a=b;
b=t;
}
for   (int   i=a;i <=b;i++)
{
if(isprime(i))
{
System.out.print( "   "+i);
}
}
}
catch(IOException   e)
{}
}

在主函数中调用getInputData()   ,为什么在主函数中b=getInputData()得到的总是0;
另外System.in.read()在函数调用中为什么一定要有(我实验过,去掉System.in.read(),编译出错,提示输入为“”)?

------解决方案--------------------
Systme.in.read()可以不要的只要调用getIntputData()就可以了