/*程序功能:输入圆的半径,计算出面积。*/public class CircleArea{
 final static double Pi=3.14159;
 public static void main(String args[]) throws java.io.IOException{                   double r;
  System.out.print("请输入圆半径r=");    r=(double)System.in.read();
  System.in.skip(2);
  System.out.println("圆半径是:"+r+",圆面积是:"+area(r));                  }
 
 static double area(double r){                        return(Pi*r*r);
  } 
 } 问题(1)为什么输入1以后,显示输出的是ASCII值?我输入1,按回车,输出显示半径是49(1的ASCII值)。(2)这里为什么不能用throws IOException 抛出异常?

解决方案 »

  1.   

    (1)为什么输入1以后,显示输出的是ASCII值?我输入1,按回车,输出显示半径是49(1的ASCII值)。
    界面上read只能读到char或者是string,你输入的是1,就是char(1),转换成int就是49.
      

  2.   


    try{
    double r;  //用整形呗,面积可以用double
       System.out.print("请输入圆半径r=");    r=(double)System.in.read();
       System.in.skip(2);
       System.out.println("圆半径是:"+r+",圆面积是:"+area(r));  
    }catch(Exeception e){
        System.out.print(e.P...);你懂的
    }
      

  3.   

    [code=Java]
    public class CircleArea{
     final static double Pi=3.14159;
     public static void main(String args[]){   
    try{
      double r;
    BufferedReader reader=new BufferedReader(new InputStreamReader(System.in)); 
      System.out.print("请输入圆半径r=");  
        String str=reader.readLine(); //获取字符串 
    r = Double.parseDouble(str); 
      System.out.println("圆半径是:"+r+",圆面积是:"+area(r));   
    }catch(Exception){
         e.printstacktrace();
    }
      }
      
     static double area(double r){     return(Pi*r*r);
      }  
     } 写成这样就没问题了。。你随便输入数字
      

  4.   

    public class CircleArea{
     final static double Pi=3.14159;
     public static void main(String args[]){   
    try{
      double r; 
      System.out.print("请输入圆半径r=");   
      Scanner scanner=new Scanner(System.in);  
       int r=scanner.nextInt(); //获取整数值 
      System.out.println("圆半径是:"+r+",圆面积是:"+area(r));   
    }catch(Exception){
      e.printstacktrace();
    }
      }
       
     static double area(double r){     return(Pi*r*r);
      }   
     }
    或者也可以写成这样