러닝 자바스크립트 스터디 자료 - CHAPTER 4. 제어문

이번챕터에서는 제어문에 대해서 나와 있었다. 제어문은 크게 조건문과 반복문으로 나눌 수 있다.
대표적으로 조건문에는 if…else 문,switch 문이 있고 반복문에는 for 문, while 문 등이 있다.
제어문을 시각적으로 나타내는 방법에는 순서도가 있다.

순서도

  • 순서도에서 마름모 모양은 예/아니오 인 결정이며 사각형은 행동입니다.
  • 시작과 끝은 원으로 나타냅니다.
  • 순서도를 프로그램으로 바꿀 때 중요한 것은 컴퓨터가 이해 할수 있는 말로 변환하는 것이다.

순서도 예시

블록문

  • 제어문과 함께 쓰인다.
  • 복합문(Compound Statement) 이라고도 함
  • 문 여러개를 중괄호로 묶은것을 말한다.
  • 한 줄 일때에는 블록문과 같이 사용하지 않아도 된다.

공백

  • 자바스크립트는 줄바꿈 문자를 포함해, 추가 공백을 신경쓰지 않는다.
  • 들여쓰기는 항상 의미가 명확히 드러나도록 써야 한다.

조건문

if…else 문

if…else 문은 주어진 조건식의 평가 결과, 즉 논리적 참,거짓에 따라 실행할 코드 블록을 결정하여 if 문 혹은 else 문을 실행합니다.
만약 조건식의 평가 결과가 불리언 값이 아니면 불리언 값으로 강제변환 되어서 논리적 참,거짓을 구별합니다.

if...else 문의 문법
1
2
3
4
5
if(조건식){
// 조건식이 참이면 이 코드 블록을 실행합니다.
}else {
// 조건식이 거짓이면 이 코드 블록을 실행합니다.
}

조건식을 추가 하고 싶으면 else if 문을 사용한다.
else if문과 else문은 옵션으로 사용 할 수도 있고 사용하지 않을 수도 있다.
if 문과 else문은 1번씩만 사용이 가능하고 else if문은 여러 번 사용이 가능하다.

switch 문

if 문은 두 가지 중 하나를 선택하지만 switch 문은 조건 하나로 여러가지 중 하나를 선택 할 수 있다.
다양하게 나뉘는 조건을 표현 할때 사용

switch 문의 문법
1
2
3
4
5
6
7
8
9
10
11
12
13
14
switch(표현식){
case value1:
// 표현식을 평가한 결과가 value1 일때 실행
[break;]
case value2:
// 표현식을 평가한 결과가 value2 일때 실행
[break;]
case valueN:
// 표현식을 평가한 결과가 valueN 일때 실행
[break;]
default:
// 표현식을 평가한 결과가 없을때 실행
[break;]
}
  • default 절은 일치하는 case 절이 없을 때 실행
  • 필수는 아니지만, 보통 맨 마지막에 사용
  • break문이 없어도 되지만 사용하는 습관이 중요한다.
  • switch 문을 함수 안에서 사용 할때는 return 문break 문 대신해서 사용 할 수 있다.

제어문의 예외

  • break - 루프 중간에 빠져 나갑니다.
  • continue - 루프에서 다음 단계로 바로 건너뜁니다.
  • return - 제어문을 무시 하고 현재 함수를 즉시 빠져나갑니다.
  • throw - 예외 핸들러에서 반드시 처리해야 할 예외를 일으킵니다. 예외 핸들러는 현재 제어문 바깥에 있어도 상관없습니다.

반복문

while 문

조건을 만족하는 동안 코드를 계속 반복한다.

while 문의 문법
1
2
3
while(조건식){
//조건식이 참이면 실행
}

do…while문

최소 한번은 실행 하려 할 때 사용합니다.

do...while 문의 문법
1
2
3
do{
//실행문
}while(조건문)

for 문

while문,do...while문은 모두 for 문으로 고쳐 쓸 수 있습니다. 어떤일을 정해진 숫자만큼 반복할거나 특히 그 일을 지금 몇번째 하는지 알아야 할때 사용합니다.

for 문의 문법
1
2
3
for( 초기화식; 조건식; 증감식){
//조건식이 참인경우 실행문이 반복된다.
}
  • for 문의 다른 패턴
  1. 쉼표 연산자를 쓰면 초기화와 마지막 표현식에 여러가지 문을 결합 할 수 있다,
  2. 보통 정수 인덱스를 늘이거나 줄이면서 반복하지만 꼭 그래야 하는 건 아니다.
  3. 어떤 표현식이든 쓸수 있다.(문자열, 정수가 아닌 수, 객체 프로퍼티)
  • 장점
  1. 제어부가 첫번째 행에 모여 있어서 일목요연하게 파악 할 수 있다.
  2. 초기화한 변수가 for문 안에서만 유효하다.(호이스팅)

for..in 문

for…in 문은 객체의 프로퍼티에 루프를 실행 하도록 설계된 반복문이다.

for...in 문의 문법
1
2
3
for(variable in object){
//실행문
}
  • for…in 문 주의사항
    객체 리터럴에 쓴 순서대로 열거되지 않는다.(순서가 보장되지 않는다.)
    열거 할 수 없는 프로퍼티가 존재한다.(객체의 모든 내장 메서드를 비롯해 각종 내장 프로퍼티 같은 비열거형 속성은 반복되지 않는다. 예:length)
    프로토타입에서 상속한 프로터티도 나열한다.
    hasOwnProperty 관련 참고링크

for…of 문

ES6에서 새로 생긴 반복문, 컬렉션의 요소에 루프를 실행하는 다른 방법

for...of 문의 문법
1
2
3
for(variable of object){
//실행문
}

배열은 물론 이터러블 객체(member를 하나씩 차례로 반환 가능한 object)에 모두 사용 할 수 있는 범용적인 루프
루프를 실행해야 하지만 각 요소의 인데스를 알 필요는 없을 때
이터러블 관련 참고링크

메타문법

다른 문법을 설명하는 문법

댓글

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×