Java의 void 메소드에서 return 키워드는 무엇을합니까?
경로 찾기 튜토리얼을 보고 return
있는데 void
메서드 (class PathTest
, line 126) 안에있는 문을 발견했습니다 .
if ((x < 0) || (y < 0) || (x >= map.getWidthInTiles()) || (y >= map.getHeightInTiles())) {
return;
}
저는 Java 초보자입니다. 아무도 왜 거기에 있는지 말해 줄 수 있습니까? 내가 아는 한, return
void 메서드 내부는 허용되지 않습니다.
그 지점에서 메소드를 종료합니다. 일단 return
실행 되면 나머지 코드는 실행되지 않습니다.
예.
public void test(int n) {
if (n == 1) {
return;
}
else if (n == 2) {
doStuff();
return;
}
doOtherStuff();
}
컴파일러는 일부 코드에 도달 할 수 없음을 알려줄만큼 똑똑합니다.
if (n == 3) {
return;
youWillGetAnError(); //compiler error here
}
return
void 메서드에서 가질 수 있으며 (에서와 같이 ) 값을 반환 할 수 없기 return 5;
때문에 void 메서드 라고 부릅니다 . 어떤 사람들은 항상 return 문으로 void 메서드를 명시 적으로 종료하지만 필수는 아닙니다. 할 수 있지만, 초기 기능을 떠날 수 :
void someFunct(int arg)
{
if (arg == 0)
{
//Leave because this is a bad value
return;
}
//Otherwise, do something
}
키워드는 단순히 호출 스택에서 프레임을 팝하여 컨트롤을 함수 호출 다음 줄로 반환합니다.
Java 언어 사양에 따르면 메서드가 void를 반환하면 표현식없이 반환 할 수 있습니다.
반환 할 것이없고 제어가 호출 메서드로 다시 전달되기 때문에 아무 것도 반환하지 않는다는 점을 제외하면 지정된 매개 변수가있는 함수의 반환과 동일하게 작동합니다.
함수를 종료하고 아무것도 반환하지 않습니다.
return 1;
정수 1을 반환하기 때문에 이와 같은 것은 올바르지 않습니다.
이 예를 참조하여 조건부로 목록에 추가하려고합니다. "return"이라는 단어가 없으면 모든 if가 실행되고 ArrayList에 추가됩니다!
Arraylist<String> list = new ArrayList<>();
public void addingToTheList() {
if(isSunday()) {
list.add("Pray today")
return;
}
if(isMonday()) {
list.add("Work today"
return;
}
if(isTuesday()) {
list.add("Tr today")
return;
}
}
참고 URL : https://stackoverflow.com/questions/744676/what-does-the-return-keyword-do-in-a-void-method-in-java
'Program Tip' 카테고리의 다른 글
rspec으로 ActionMailer delivery_later를 테스트하는 방법 (0) | 2020.11.29 |
---|---|
GUID는 정확히 무엇입니까? (0) | 2020.11.29 |
jQuery.validation에서 같지 않음 규칙을 추가하는 방법 (0) | 2020.11.29 |
웹킷에 예기치 않은 토큰이 잘못되었습니다. (0) | 2020.11.29 |
WPF 연결 속성 데이터 바인딩 (0) | 2020.11.29 |