我刚刚开始使用Java,因此我犯了很多错误,我已经解决并了解了很多错误,但现在我遇到了输入问题.我看到有两种输入:InputBufferedReader和Scanner,但我读到第一种更好(我不知道为什么),所以我正在使用它.
我得到的错误是:

码
import java.io.InputStreamReader;
import java.io.BufferedReader;
public class Cerchio{
private float r;
private float area;
private float cfr;
final double pi = 3.14;
public static void main(String[] args){
System.out.println("Programma cerchio\n");
Cerchio cerchio = new Cerchio();
cerchio.getR();
cerchio.c_cfr();
cerchio.c_area();
System.out.println("La circonferenza è: " + cerchio.cfr);
System.out.println("L area è: " + cerchio.area);
}
private float getR(){
InputStreamReader input = new InputStreamReader(System.in);
BufferedReader num = new BufferedReader(input);
try{
String sr = num.readLine();
r = Float.valueOf(sr).floatValue();
} catch(NumberFormatException nfe){
System.out.println("Incorrect!!!");
}
return r;
}
private float c_cfr(){
cfr =(float)(2 * pi * r); //casting
return cfr;
}
private float c_area(){
area = (float)(pi * (r*r));
return area;
}
}
Run Code Online (Sandbox Code Playgroud)
可能还有其他的误区,但我不知道怎么回过头来看看这个.
怎么了?谢谢!
PS:我读过这篇文章,但我不明白为什么以及如何运作
Alessio,在Java中,您有两种类型的例外:
当方法可以触发"已检查"异常时,您必须处理它.
为此,您有两种方法:
在您的情况下,IOException是一个"已检查"的异常,因此您应该向您的getR方法添加"throws IOException" 或使用try catch处理它.
PS:如果你正在学习java,最好使用像eclipse这样的IDE,你会更容易理解错误,因为它会指向你的一些文字高亮,它会为你提供解决方案.