2013-10-17 2 views
0

저는 자바 프로그래밍에 대해 상당히 익숙합니다. 메소드에 "super"return 문과 함께 부모 메소드를 끝내는 방법이 있는지 궁금합니다.부모 문법도 끝나는 return 문?

예 :

public class test { 

    public method1() { 
     ...some code... 

     if (someValue == someValue2) {return;} 

     ...more code... 
    } 

    public static void main(String[] args) { 
     ...some code... 

     method1(); 

     ...more code... 
    } 
} 

가 나는 또한 방법 항목 년대 이후, 반환 된 값에 따라 if 문을 추가하지 않고 (이 경우 주요 방법) 부모 방법의 실행을 종료하는 방법 항목의 반환 문을 싶습니다 기도. 그게 가능하니?

감사합니다.

+5

번호를 사용할 수 있습니다 종료 프로그램을 원하는 경우, 또는

public method1() { ...some code... if (someValue == someValue2) {return false;} else return true; } public static void main(String[] args) { ...some code... result = method1(); if(!result) return; ...more code... } 

을, 그러나 그것은 잔인한 것 . –

+0

'던져 새 ThreadDeath()'. ThreadDeath는 기본 uncaught 예외 처리기에서 특수하게 처리되며 스택 추적을 인쇄하지 않습니다. –

+1

올리의 코멘트에 확장; 이런 종류의 행동이 필요한 것은 일반적으로 디자인 문제를 나타내는 것입니다. –

답변

1

그러나 귀하의 예제에서, 출구 일하는 것이 제

(즉, 모든의 실행을 중지),하지만 당신은 "더 제어"를 원하는 경우 다음 방법은 값을 반환하고를 확인합니다. 일관되게 유지하십시오. 예 : 0 = 성공을 사용하고 다른 것은 오류 코드입니다.

public class test { 

    public int method1() { 
     ...some code... 
     if (someValue == someValue2) {return -1;} 
     ...more code... 
     return 0; 
    } 

    public static void main(String[] args) { 
     ...some code... 

     if (method1() == 0) { 
      ...more code... 
     } 
    } 
} 
0

메서드는 그 코드를 호출 할 때 코드를 반환합니다. 그래서, 기본적으로 당신은 발신자에게 돌아갑니다. 당신은 당신의 구현을 달성하기 위해 부울 수익을 넣을 수 있습니다 : 당신은 당신이 당신은 예외 일부 잔인한 일을 할 수 System.exit()

+1

논리에 따르면'method1'의'... more code ... '는 절대로 실행되지 않습니다. – beny23

+0

예 .. 알았어. 풀이 –