我遇到的问题是循环中避免了输入的最后一行。
示例输入:
+ 2 3
* 23 23
/ 65 54
+ 23 23
计划给了我:
5
529
1
为什么不计算最后一行?
Scanner input = new Scanner(System.in);
for(int i = 0; input.hasNextLine(); i++){
char c = input.next().charAt(0);
int x = input.nextInt();
int y = input.nextInt();
if( c == '*'){
System.out.println(x*y);
}
else if(c == '/'){
System.out.println(x/y);
}
else if(c == '-'){
System.out.println(x-y);
}
else if(c == '+'){
System.out.println(x+y);
}
else if(c == '%'){
System.out.println(x%y);
}
}
我在循环时也进行了测试,它完全一样。你能帮忙吗?
答案 0 :(得分:0)
我遇到了与Scanner相同的问题。 命令nextInt()不读取输入,因此它将输入命中作为下一个扫描程序的输入。 尝试添加" String trash = reader.nextLine();"在每个nextInt之后。 至少这对我的扫描仪问题有帮助:))
答案 1 :(得分:0)
BufferedReader br = new BufferedReader(new FileReader(new File("data")));
String line = "";
while((line=br.readLine())!=-1){
String[] data = line.split(" ");
if(data[0].compareTo("+")==0)
System.out.println(Integer.parseInt(data[1])+Integer.parseInt(data[2]));
if(data[0].compareTo("*")==0)
System.out.println(Integer.parseInt(data[1])*Integer.parseInt(data[2]));
...
}