return, break, continue

oYJo·2025년 3월 26일

JavaScript

목록 보기
32/52

함수

1️⃣ return, break, continue

함수 실행 종료하고, 주어진 값 함수 호출 지점 반환한다

return 호출하는 지점에서 즉시 실행 멈춘다.

return문이 없는 함수는 undefined를 반환한다.

return [[표현식]];

✔️표현식 : 반환할 값으로 사용할 표현식

예시

function a(){
}
console.log(a() === undefined); // true

function b(){
	return;
}
console.log(a() === undefined); // true
function a(){
console.log("hi"); // hi
	return;
console.log("hello!"); // undefined
}

console.log(a());

↑ return 명령문 다음은 실행되지 않는다.

return;
return true;
return false;
return x;
return x + y / 3;

↑ return 명령문을 만나면 멈춘다

2️⃣ console.log vs return

console.log : 콘솔 정보 인쇄
값을 결과로 정의하지 않고, 단순 결과값을 콘솔창에 표시
return : 함수 결과를 반환
다음 결과를 함수 값으로 정의하고 함수 종료

//ex.1-1)
function calculate(x,y){
  console.log((x*y));
}
let area1 = calculate(3,4); // 12
console.log('Area1:' + area1); 
// Area1:undefined
//ex.1-2)
function calculate(x,y){
  return x*y;
}
let area2 = calculate(3,4);
console.log('Area2:' + area2); 
// Area2:12

3️⃣ break vs return

return : 함수 내에서만 사용 가능하다
반복문 안에서도 사용할 수 있지만, 이것도 결국 함수 안 일 때만 가능하다
결국, 함수 안에 있을 때만 사용 가능하다
break, continue : for, while 안에서만 사용 가능하다

for (let i = 0; i < 5; i++) {
    if (i === 2) {
        continue;  
        // i가 2일 때 현재 반복을 건너뜀
    }
    if (i === 4) {
        break;  // i가 4일 때 반복문 종료
    }
    console.log(i);
}
// 0, 1, 3
function add(a, b) {
    return a + b;  // 함수 내부에서만 사용 가능
}
let result = add(3, 5);
console.log(result);  // 8

반복문 안에서 함수 return 사용 가능

function findEven(numbers) {
    for (let num of numbers) {
        if (num % 2 === 0) {
            return num;  // 가장 먼저 발견한 짝수를 반환하고 함수 종료
        }
    }
}
console.log(findEven([1, 3, 7, 8, 9]));  
// 8

4️⃣ return vs break, continue

❗️break, continuefor 루프 안에서 사용할 수 있을까?
사용 가능하지만, return과 다르게 동작한다.
break: 반복문을 완전히 종료
- break를 사용하면 반복문이 완전히 멈추지만, 함수가 종료되지는 않는다.
- return처럼 값을 반환하지 않고, 단순히 반복을 멈출 뿐이다.
- 즉, break는 값을 반환하지 않으므로 함수 바깥 코드도 실행된다

function findEvenWithBreak(numbers) {
  for (let num of numbers) {
    if (num % 2 === 0) {
      console.log("짝수 발견:", num);
      break;  // 반복문 종료 (하지만 함수는 종료되지 않음)
    }
  }
  console.log("반복문이 끝났습니다.");
}
findEvenWithBreak([1, 3, 7, 8, 9]);

continue: 현재 반복을 건너뛰고 다음 반복 실행

  • return처럼 함수를 종료하는 기능이 아니다.
  • 즉, continue는 특정 조건일 때만 실행을 건너뛰고 반복문은 계속 진행된다.
function findEvenWithContinue(numbers) {
  for (let num of numbers) {
    if (num % 2 !== 0) {
      continue;  // 홀수이면 건너뛰고 다음 반복 진행
    }
    console.log("짝수 발견:", num);
  }
  console.log("반복문이 끝났습니다.");
}
findEvenWithContinue([1, 3, 7, 8, 10]);
정리키워드
return함수를 즉시 종료하고 값 반환
break반복문을 즉시 종료 (함수는 종료 안 됨)
continue현재 반복을 건너뛰고 다음 반복 진행

✔️return & break, return & continue
❗️같이 사용할 수도 있다. 하지만 의미가 없다.

5️⃣ return & break

return이 실행되면 함수 자체가 종료되므로, break는 필요 없다.
하지만, breakreturn 바로 앞에 두면 실행되지만 의미 없다.

function findEvenWithBreak(numbers) {
  for (let num of numbers) {
    if (num % 2 === 0) {
      break;  // 반복문을 종료 (하지만 의미 없음)
      return num;  // 절대 실행되지 않음
    }
  }
  return null;
}
console.log(findEvenWithBreak([1, 3, 7, 8, 9]));  // null

그냥 return만 쓰는 게 맞다 (break는 불필요)

6️⃣ return & continue

continue는 현재 반복을 건너뛰고 다음 반복을 실행하지만, return이 실행되면 함수가 종료되므로 continue가 의미 없다
하지만, return이 실행되지 않는 경우에는 continue가 동작할 수 있다

function findEvenWithContinue(numbers) {
  for (let num of numbers) {
    if (num % 2 !== 0) {
      continue;  // 홀수면 건너뛰고 다음 반복 실행
    }
    return num;  // 짝수를 찾으면 반환하고 함수 종료
  }
  return null;  // 짝수가 없으면 null 반환
}

console.log(findEvenWithContinue([1, 3, 7, 8, 9]));  // 8
console.log(findEvenWithContinue([1, 3, 7, 9]));    // null
profile
Hello! My Name is oYJo

0개의 댓글