try catch 里的变量和外面的有什么区别?
答案:2 悬赏:50 手机版
解决时间 2021-02-19 00:54
- 提问者网友:心牵心
- 2021-02-18 19:10
try catch 里的变量和外面的有什么区别?
最佳答案
- 五星知识达人网友:大漠
- 2021-02-18 19:27
变量的作用域不同。变量c在try{}块中定义他的作用就只在try{}可见,将变量的声明放在try外面,才在try{}外可用。
例如,下面这段代码会出现编译错误,找不到变量c:
public class ArgsTest {
public static void main (String [] args) {
if (args.length<3){
System.out.println("Usage\"a\"op\"b\"");
System.exit(-1);
}
try{
double a = Double.parseDouble(args[0]);
double b = Double.parseDouble(args[2]);
double c = 0;
if (args[1].equals("x")) c=a*b;
else if (args[1].equals("/")) c=a/b;
else if (args[1].equals("+")) c=a+b;
else if (args[1].equals("-")) c=a-b;
} catch (Exception e) {
e.printStackTrace();
}
System.out.print(c);
}
}
将上面的代码改动如下,就可以了:
public class ArgsTest {
public static void main (String [] args) {
if (args.length<3){
System.out.println("Usage\"a\"op\"b\"");
System.exit(-1);
}
double c = 0;
try{
double a = Double.parseDouble(args[0]);
double b = Double.parseDouble(args[2]);
if (args[1].equals("x")) c=a*b;
else if (args[1].equals("/")) c=a/b;
else if (args[1].equals("+")) c=a+b;
else if (args[1].equals("-")) c=a-b;
} catch (Exception e) {
e.printStackTrace();
}
System.out.print(c);
}
}
例如,下面这段代码会出现编译错误,找不到变量c:
public class ArgsTest {
public static void main (String [] args) {
if (args.length<3){
System.out.println("Usage\"a\"op\"b\"");
System.exit(-1);
}
try{
double a = Double.parseDouble(args[0]);
double b = Double.parseDouble(args[2]);
double c = 0;
if (args[1].equals("x")) c=a*b;
else if (args[1].equals("/")) c=a/b;
else if (args[1].equals("+")) c=a+b;
else if (args[1].equals("-")) c=a-b;
} catch (Exception e) {
e.printStackTrace();
}
System.out.print(c);
}
}
将上面的代码改动如下,就可以了:
public class ArgsTest {
public static void main (String [] args) {
if (args.length<3){
System.out.println("Usage\"a\"op\"b\"");
System.exit(-1);
}
double c = 0;
try{
double a = Double.parseDouble(args[0]);
double b = Double.parseDouble(args[2]);
if (args[1].equals("x")) c=a*b;
else if (args[1].equals("/")) c=a/b;
else if (args[1].equals("+")) c=a+b;
else if (args[1].equals("-")) c=a-b;
} catch (Exception e) {
e.printStackTrace();
}
System.out.print(c);
}
}
全部回答
- 1楼网友:北方的南先生
- 2021-02-18 20:26
变量的作用域问题。变量c在try{}块中定义他的作用就只在try{}可见,以后遇到这种情况可将变量的声明放在try外面
例如 可将上面的代码改成这样
public class ArgsTest {
public static void main (String [] args) {
if (args.length<3){
System.out.println("Usage\"a\"op\"b\"");
System.exit(-1);
}
double c = 0;
try{
double a = Double.parseDouble(args[0]);
double b = Double.parseDouble(args[2]);
if (args[1].equals("x")) c=a*b;
else if (args[1].equals("/")) c=a/b;
else if (args[1].equals("+")) c=a+b;
else if (args[1].equals("-")) c=a-b;
} catch (Exception e) {
e.printStackTrace();
}
System.out.print(c);
}
}
就可以了
例如 可将上面的代码改成这样
public class ArgsTest {
public static void main (String [] args) {
if (args.length<3){
System.out.println("Usage\"a\"op\"b\"");
System.exit(-1);
}
double c = 0;
try{
double a = Double.parseDouble(args[0]);
double b = Double.parseDouble(args[2]);
if (args[1].equals("x")) c=a*b;
else if (args[1].equals("/")) c=a/b;
else if (args[1].equals("+")) c=a+b;
else if (args[1].equals("-")) c=a-b;
} catch (Exception e) {
e.printStackTrace();
}
System.out.print(c);
}
}
就可以了
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯