关于bufferedreader的一个问题

来源:百度知道 编辑:UC知道 时间:2024/09/22 01:48:01
import user.*;
class aa {
public static void main(String[] args){
int i=ReadNumber.readInteger();
float f=ReadNumber.readFloat();
System.out.println("i:"+i+";f:"+f);
}
}
=======================================================
运行结果:
123(回车)
45.6(回车)
i:123;f:123.0

为什么会这样呢,读取浮点数时,读取的字符串怎么还是前面输入
的,第二次输入的就没有读
========================================================
package user;
/*******************************************
该类中实现输入数字
*******************************************/
import java.io.*;
public class ReadNumber{
private static String str;
private static boolean error;
public static int readInteger()
{
BufferedReader in=new BufferedReader(new InputStreamReader(System.in));
error=false;
do{
System.out.flush();
try{ str=in.readLine();}
catch(IOException e){ System.out.p

具体没大看出来问题
估计和你的变量str和error是静态的有点关系

你为什么要把那两个变量设置成静态的呢,如果是静态变量,赋值过一次后就再也不会改变。