public static int kkk() {
int k = 0;
try {
k += 2;
return k;
} catch (Exception e) {
k++;
return k;
} finally {
k += 5;
}
}public static void main(String[] args){
System.out.println(kkk());
}
为什么会等于2呢 debug 和 编译后 都应该等于7 我设置 k为全局 也是7 返回打印出来就是 2
int k = 0;
try {
k += 2;
return k;
} catch (Exception e) {
k++;
return k;
} finally {
k += 5;
}
}public static void main(String[] args){
System.out.println(kkk());
}
为什么会等于2呢 debug 和 编译后 都应该等于7 我设置 k为全局 也是7 返回打印出来就是 2
int k = 0;
try {
k += 2;
return 2;
} catch (Exception e) {
k++;
return 0;
} finally {
k += 5;
}
和这个是一个道理
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println(kkk()); } public static int kkk() {
int k = 0;
try {
k += 2;
return k;
} catch (Exception e) {
k++;
return k;
} finally {
k += 5;
return k;
}
}
}
http://www.oschina.net/code/snippet_579674_13049
去看看吧。有解答。
int k = 0;
try {
k += 2;
int c = 0 / 0;
return k;
} catch (Exception e) {
k++;
return k;
} finally {
k += 5;
return k;
}
}
}上面的代码输出3;public static int kkk() {
int k = 0;
try {
k += 2;
int c = 0 / 0;
return k;
} catch (Exception e) {
} finally {
k += 5;
return k;
}
}
}上面的代码输出7;
输入几, 关键是看return的位置
[Quote=引用 22 楼 的回复:]
public static int kkk() {
int k = 0;
try {
k += 2;
int c = 0 / 0;
return k;
} catch (Exception e) {
k++;
return k;
} finally {
k += 5;
return k;
}
}
}
这个返回的是8,不是3