老兄,你这个方法有问题:
static String ReadLn (int maxLg) // utility function to read from stdin
{
byte lin[] = new byte [maxLg];
int lg = 0, car = -1;
String line = ""; try
{
while (lg < maxLg)
{
car = System.in.read();
if ((car < 0) || (car == '\n')) break;
lin [lg++] += car;
}
}
catch (IOException e)
{
return (null);
} if ((car < 0) && (lg == 0)) return (null); // eof
return (new String (lin, 0, lg));
}
你想想你在Begin这个方法中调用到了这方法:change1.ReadLn(255)
可是方法ReadLn中的lg < maxLg只会用于是true,所以会造成死循环:)
代码太多了,只看到这里了:)
static String ReadLn (int maxLg) // utility function to read from stdin
{
byte lin[] = new byte [maxLg];
int lg = 0, car = -1;
String line = ""; try
{
while (lg < maxLg)
{
car = System.in.read();
if ((car < 0) || (car == '\n')) break;
lin [lg++] += car;
}
}
catch (IOException e)
{
return (null);
} if ((car < 0) && (lg == 0)) return (null); // eof
return (new String (lin, 0, lg));
}
你想想你在Begin这个方法中调用到了这方法:change1.ReadLn(255)
可是方法ReadLn中的lg < maxLg只会用于是true,所以会造成死循环:)
代码太多了,只看到这里了:)
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货