class HexRead{
String[] input = { "000A110D1D260219 ","78700F1318141E0C ","6A197D45B0FFFFFF "};
public static void main(String[] args){
HexRead hex = new HexRead();
for (int i = 0; i < hex.input.length; i++)
hex.readLine(hex.input[i]);
}
void readLine(String code){
try{
for (int j=0;j+1<code.length();j+=2){
String sub=code.substring(j,j+2);
int num=Integer.parseInt(sub,16);
if(num == 255)
return;
System.out.print(num + " ");
}
}finally{
System.out.println("**");
}
return;
}
}以上程序中try...finally块中的return到底有什么用啊?我知道return是返回的意思,但在try...finally块中return是否还有其它作用呢?请各位大哥讲解一下这个程序中两个return的作用?
String[] input = { "000A110D1D260219 ","78700F1318141E0C ","6A197D45B0FFFFFF "};
public static void main(String[] args){
HexRead hex = new HexRead();
for (int i = 0; i < hex.input.length; i++)
hex.readLine(hex.input[i]);
}
void readLine(String code){
try{
for (int j=0;j+1<code.length();j+=2){
String sub=code.substring(j,j+2);
int num=Integer.parseInt(sub,16);
if(num == 255)
return;
System.out.print(num + " ");
}
}finally{
System.out.println("**");
}
return;
}
}以上程序中try...finally块中的return到底有什么用啊?我知道return是返回的意思,但在try...finally块中return是否还有其它作用呢?请各位大哥讲解一下这个程序中两个return的作用?
解决方案 »
- 一道这样的逻辑编程题!!
- DW(Dreamweaver)下的shtml、html导入到myecilpse乱码问题。【基础篇】
- 如何在项目中屏蔽system.out.println()
- 怎样设计数据库的访问框架????????????????
- 急!!急!!关于java 培训 我感觉金世纪还可以想参加11.21号的班 请大家给参谋一下 .先谢了!!
- 请教JSR是什么概念?
- 诚心求effective java 电子版
- 各位大哥,请问如何用java把word格式文档转换为pdf格式?急!
- 有关eclipse用CVS的问题,如何实现,一人编辑一文件,别人则必须签出才能编辑。
- Boolean test=mybook instanceof book 是什么意思??
- 急:关于自定义类一问!
- 菜鸟问:接口为何会有实现具体方法的函数?
请问是不是这样的啊?
另外值得注意的是,try...finally的执行机制是,finally之前有return就先return后finally,finally之后有return那就相当于程序执行完自然return了,现在你的例子里没有返回值,即是void的类型,如果是有返回值的,你就更清楚了,举个例子class A {
public static void main(String[] args) {
A a = new A();
int result;
result = a.test();
System.out.println("result is " + result);
}
public int test() {
int result;
try {
result = 1;
System.out.println("result is " + result);
return result; //返回1
} fianlly {
result = 2;
System.out.println("result is " + result);
}
//return result; //返回2
}
}
把返回1和返回2依次注释掉试试就知道了
class A {
public static void main(String[] args) {
A a = new A();
int result;
result = a.test();
System.out.println("result is " + result);
}
public int test() {
int result;
try {
result = 1;
System.out.println("result is " + result);
return result; //返回1
} finally {
result = 2;
System.out.println("result is " + result);
}
//return result; //返回2
}
}
在这个中第一个返回语句,会先将result进栈,然后执行finally,执行完finally后,弹出result.所以这个的结果是 1,2,1.