import java.io.*;class JavaThrows{
 
 public int compute(int x) throws ArithmeticException{
  
  int z=100/x;
  return z;}
  
  public void method1(){
   int x;
   
   while(true){
   try{
    x=System.in.read();
    x=x-48;
    x=compute(x);
    System.out.println(x);}
    
    
    catch(IOException ioe){
     System.out.println("read error");}
     catch(ArithmeticException e){
      System.out.println("devided by 0");}
   }
   
   }
   
   public static void main(String args[]){
    JavaThrows t1=new JavaThrows();
    t1.method1();}
 
 }运行看看输出
怎么老是更着两个-2
-2

解决方案 »

  1.   

    回车的字符是 0a 0d,减48,再被100除,分别得到-2.6、-2.8,取整,得-2。System.in.read()的意思是从系统的输入流读取一个字符,注意,是一个。当输入流中没有字符时,进程阻止,等待用户输入。而当你输入一个数字,再敲回车时,就有至3个字符输入流中。然后,开始循环,每次读一个。