Java에서는 리턴 진술이 포함되어있을 때, 실행 상황은 무엇입니까? 이제 다음 예제로 설명해 봅시다.
첫 번째 사례 : 시도에는 리턴 명령문이 포함되어 있으며 마지막으로 포함되지 않습니다.
공개 클래스 테스트 {static string s = ""; {System.out.println ( "시도 ....";여기서 우리는 문자열을 정의하고, "a"를 t to try로 할당하고, 직접 반환하고, s a 또는 b의 최종 값은 "b"를 할당합니다. 다음은 실행 결과입니다
시도하십시오 ..... 17 B 8 a
우리는 최종 결과가 A임을 발견했지만 B가 우선 순위로 인쇄됩니다. 디버그 단계별 디버깅을 통해 Try에서 리턴을 실행하기 전에 Code IN의 코드가 실행되고 Return 문이 실행된다는 것을 발견했습니다. 반환 문이 마침내 포함되면 두 번째 상황을 살펴 보겠습니다.
두 번째 사례 : 마지막으로 반환 문을 포함시킵니다.
공개 클래스 테스트 {static string s = ""; {System.out.println ( "시도 ...");S = "B"가 마지막으로 변경되면 S = "B";? 문자열은 s a 또는 b입니까?
시도해보세요 ..... 8 b
최종 인쇄 결과는 b입니다.
우리는 반환 문이 특정 방법으로 사용된다는 것을 알고 있습니다. 이 시간 에이 반환 이후의 진술은 실행되지 않습니다.
public int print () {int c = 1; (예 : e.printstacktrace (); // ---------- 4; C; // ------- 2} // return c;프로그램 실행 결과는 다음과 같습니다.
달리다:
실행을 시도하십시오 ...
마침내 실행 ...
3
성공적으로 구축 (총 시간 : 0 초)
위치 2 및 3에는 하나의 반환 문 만있을 수 있으며 2, 3 및 4에는 하나의 리턴 명령문이 있어야합니다. 2가 실행되면 메소드가 종료되고 3의 문을 실행할 수 없습니다.
Try Statement 블록이 1에서 실행되면 함수의 반환 값은 다른 임시 변수에 저장됩니다 (C의 다른 변수는 102입니다. 또 다른 명령문 블록은 2에서 발생하며, 반환 값은 임시 변수에 저장됩니다 (값은 3).
public int print () {int c = 1; -1} system.out.println;위의 코드에서는 최종 문자 블록에 반환 명령문이 없습니다. 최종적으로 첫 번째 임시 변수의 값, 즉 102.
RUN : Tryfinally102 성공적으로 구축되었습니다 (총 시간 : 0 초)
결론 : 1. 시도에 반환 진술이 있는지 여부에 관계없이 최종 성명서는 확실히 실행됩니다 (마지막으로, 이름은 좋습니다).
2. 마침내 반환 명령문이없고 시도한 반환이 있으면 시도에서 리턴 명령문을 실행하기 전에 코드가 먼저 실행 된 다음 Reture 문도 실행됩니다 마지막으로 포함되면 직접 반환되며 더 이상 시도에서 리턴 명령문을 실행하지 않습니다.