java-try,return和finally相遇時的各類狀況

今天碰到了這樣一個問題;使用try,return和finally會碰到的各類狀況
1,try中有return時,執行順序;
2,try和finally中都有return時,執行順序;
3,運算代碼在finally中,try中return返回值時的執行順序;
代碼:
public class tryfinally {
static int i=0;
public static void main(String[] args) {
  int value=getValue1();
   System.out.println(value);
  System.out.println(getValue());
  System.out.println(getValue1());
  System.out.println(getValue2());
  System.out.println(getValue3());
}
@SuppressWarnings("finally")
public static boolean getValue(){
  try{
   return true;
  }finally{
   return false;
  }
}

@SuppressWarnings("finally")
public static int getValue1(){
  try{
   return i;
  }finally{
   i++;
   System.out.println(i);
  }
}

@SuppressWarnings("finally")
public static int getValue2(){
  int y=0;
  try{
   return y;
  }finally{
   y++;
   System.out.println(y);
  }
}
}

@SuppressWarnings("finally")
public static int getValue3(){
                int z=0;
  try{
   return z;
  }finally{
   z++;
  }
}
結果:false
1
0
1
0
1
0
0

個人結論:代碼按順序執行,有多個return時返回的同一個值時後者覆蓋前者。get

相關文章
相關標籤/搜索