메소드 정리

return; break ; continue의 차이

이상욱1 2015. 5. 4. 12:54

return 은, 현재 있는 함수에서 빠져나가며, 그 함수를 호출했던 곳으로 되돌아 가라는 뜻입니다. 되돌아 가면서 그 함수를 호출했던 곳 즉 calling routine 에 어떤 값을 반환하는 것입니다.

return 0; 는 0 이라는 값을 반환하라는 의미이고
return 1; 은 1 이라는 값을 반환하라는 뜻입니다.

return 은 함수의 어떤 곳에서도 위치할 수 있는데, return 이 실행되는 즉시 그 함수는 무조건 실행이 종료됩니다.

즉, 현재의 함수에서 빠져 나가라는 의미입니다.



void 형 함수에서도 return; 을 쓸 수 있습니다. 아무것도 반환하지 않는 return; 즉, 단지 함수를 종료시키기 위한 return; 이라면 됩니다. 이 부분에 대한 설명이 누락되었는데 이상곤님께서 지적해 주셔서 방금 업데이트했습니다 ^^;




public class Returnexam {

public void retexam(){

int arr []={10 , 20 , 30 , 40  , 50 , 100 , 11 , 14};

for(int i=0; i<arr.length; i++){

if(arr[i]==50){

return; 

}

System.out.print(","+arr[i]);

}

System.out.println("이게 찍히는가?");

}

public static void main(String[] args) {

Returnexam rt = new Returnexam();

rt.retexam();

}

}




if(arr[i]==50){

return; 

}   이 부분을  return; break;  continue ;  에 따라서 결과 값이 다르다 


return: 의 경우 출력 값  ,10,20,30,40

break; 의 경우 출력 값  ,10,20,30,40이게 찍히는가?

continue; 의 경우 출력 값 ,10,20,30,40,100,11,14이게 찍히는가?  
컨티뉴의 경우는 System.out.print(","+arr[i]); 아래에 sysout("밑에꺼 찍히는가") 를 해주면 50빼곤 다찍힌다  
즉 if에 걸리고 continue; 를 만나자 마자  그 밑줄은 안가고 for문 위로 올라가서 다음 번으로 돈다