//如果想在两个括号里使用,必须定义在这个地方
try{
这里面的变量生存周期只在括号里面
}catch(){
这里已经过了生存周期了
}

解决方案 »

  1.   

    两个地方,java.lang.*不用特别声明import
    你要import  java.io.*;
    你的f1,f2在try里定义,生命期到try结束就没了。
    把f1,f2的声明拿到try外边,或把System.out.println(f1+f2);搞到try里边
      

  2.   

    楼上的已经说得很清楚了。首先,任何一个java文件,都会自动包含java.lang的,如果你的程序用到了标准输入输出(System.out.println...),你只要import java.io.*就可以了。你的程序之所以编译不过,是因为你没有弄清局部变量和全局变量。
    局部变量和全局变量的生存期不同,你在try里边定义f1,f2,是定义了两个局部变量,在try完以后,f1,f2也就没了,这样在进入catch以后,f1,f2等于你没有定义。按照你这个程序实现的功能,你应该把f1,f2放在try外边,和String s1,s2一起定义成全局变量。
      

  3.   

    float f1=Float.parseFloat(s1); 
    float f2=Float.parseFloat(s2); 
    是在try{}中定义的,try{}一结束,它们的生存期也就结束了。只要把它们放在适当的地方定义就可以了,比如:
    String s1,s2; 
    float f1,f2;
    后边写成
    f1=Float.parseFloat(s1); 
    f2=Float.parseFloat(s2);