我有一个程序,它从 args[]
数组中获取一个参数,在 main 方法中定义,但有一个备份以防未定义,以 try 的形式...catch block ,如果抛出 ArrayIndexOutOfBounds
异常,它会使用名为 getInt
的方法提示用户输入变量。但是,出于某种原因,当我尝试使用该变量时,我的编译器说找不到它。我有以下代码:
try {
int limit = Integer.parseInt(args[0]);
}
catch(ArrayIndexOutOfBoundsException e) {
int limit = getInt("Limit? ");
}
int[] p = getPrimes(limit);
getPrimes
是我拥有的另一种方法,它返回从 2 开始到指定数字(使用阿特金筛法)的素数数组。无论如何,当我编写 int[] p = getPrimes(limit);
并尝试编译时,它说“limit”变量未定义。请帮忙!
最佳答案
你应该在 block 外声明它:
int limit;
try {
limit = Integer.parseInt(stuff[0]);
}
catch(ArrayIndexOutOfBoundsException e) {
limit = getInt("Limit? ");
}
int[] p = getPrimes(limit);
关于java - Try...catch block 没有定义变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11243545/