일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- Promise
- vuejs
- 오픈채팅
- 순수함수
- es7
- trim
- async
- await
- 콜백함수
- 자연어처리
- 카카오
- 챗봇
- 오픈빌더
- JavaScript
- developers
- callback
- expo
- 배열
- es6
- 플러스친구
- callbackhell
- 객체
- 카카오톡채널
- 자바스크립트
- ReactNative
- arguments
- 함수
- 변수
- closure
- 유사배열객체
- Today
- Total
말랑말랑 LAB
[JavaScript] 제어문 본문
제어 구문
제어문(Control flow statement)은 주어진 조건에 따라 코드 블록을 실행(조건문)하거나 반복 실행(반복문)할 때 사용한다.
일반적으로 코드는 위에서 아래 방향으로 작성한 순서대로 실행되는데 이를 순차적 실행이라고 한다.
제어 구문은 이 순차적 실행 흐름을 변화시킨다.
o 조건문 (Conditional Statement)
- 조건식의 값에 따라 실행 흐름을 분기
- 주어진 조건식의 평가 결과에 따라 코드 블럭의 실행을 결정
- if/else문
- 조건의 만족 여부에 따라 처리할 작업 선택
- 즉, 논리적 참/거짓(true/false)에 따라 실행할 코드 블록 결정
예제
## 아래 예제는 고혈압 판정에 대한 내용만 있다 --> 저혈압 판단 로직을 추가해보자 ! (저혈압 기준: 100/60mmHg)
예제 파일:
## 아래 예제를 삼항 조건 연산자로 바꿔보자 !
- switch 문
분기점이 2개 이상일 때 효과적
switch 문의 표현식을 평가하여 그 값과 일치하는 표현식을 갖는 case 문으로 실행 순서를 이동시킨다.
이 때, switch문의 표현식과 일치하는 표현식을 갖는 case 문이 없다면 default 문으로 이동한다. (default는 옵션 - 사용할 수도 있고 사용하지 않을 수도 있다)
예제
## 위의 윤년 예제를 이용해서 날짜가 주어졌을 때 일수를 구하는 로직을 switch문으로 구현한 예제
아래 빈칸에 들어갈 코드를 채워보자 !
* 힌트: case문은 반드시 하나만 사용해야 하는 것은 아님! 여러 개의 case 문을 중복해 사용할 수도 있다
o 반복문 (Loop Statement)
- 일정한 처리를 한 다음, 원래 위치로 돌아가 똑같은 처리를 반복
- 주어진 조건식의 평가 결과가 참인 경우 코드 블럭을 실행
- 그 후 조건식을 다시 검사하여 여전히 참인 경우 코드 블록을 다시 실행한다. 이를 조건식이 거짓일 때까지 반복
- while문
가장 먼저 조건식을 평가한 후, 참이면 코드 블록을 계속 반복해서 실행, 거짓이면 실행 종료
만약 조건식의 평가 결과가 Boolean 값이 아니면 Boolean 값으로 강제 변환되어 참/거짓 구별
아래와 같이 조건식이 항상 참(True)이면 무한 루프에 빠지게 됨 --> break문으로 while 문을 탈출하는 조건을 추가해줘야 함
break문: while 문에서 빠져나옴
continue문: while문의 시작 부분으로 되돌아감
- 예제
(순차 검색, 이진 검색은 알고리즘에 대한 이해 필요)
- do/while문
먼저 문장을 실행하고(do) 뒤에 조건식(while)을 평가
- for문
|
|
## for문을 이용해 두 개의 주사위를 던졌을 때, 두 눈의 합이 6이 되는 모든 경우의 수를 출력해보자 !
힌트: for문 안에 for문을 중첩해서 사용할 수 있다
- for/in문
- for (변수 in 객체 표현식) 문장
- 객체 안의 프로퍼티를 순회하는 반복문
- 종류: break문, continue문, return문, throw문
- 모든 문장에 라벨을 붙일 수 있다
- 프로그램의 실행 순서를 제어하기 위해 사용
- switch 문의 case 문과 default 문도 라벨문이다
- 라벨문은 중첩된 for 문 전체를 빠져나올 때 유용하지만 그 외의 경우는 일반적으로 권장하지 않음
- 라벨문을 사용하면 프로그램의 흐름이 복잡해져서 가독성이 나빠지고 오류를 발생시킬 가능성이 높아지기 때문 !
- switch문과 반복문 안에서만 사용 가능
- 가장 안쪽의 switch문/반복문에서 빠져나올 때 사용하며, 라벨을 지정하여 점프할 수 있다
- 반복문을 더 이상 진행하지 않아도 될 때 불필요한 반복을 회피할 수 있어 유용함
## 아래와 같이 라벨을 지정하지 않은 break를 쓰면 결과값이 어떻게 달라질지 생각해보자 !
- 반복문 안에서만 사용 가능
- continue문을 만나면 반복문 실행을 멈추고 반복을 새로 시작
- 즉, 코드 실행을 현 지점에서 중단하고 반복문의 증감식으로 이동
- break 문처럼 반복문을 탈출하지는 않는다
## 아래 빈칸에 들어갈 코드를 채워보자 ! (힌트: 바로 위 주석 참고)
'JavaScript > JavaScript 스터디' 카테고리의 다른 글
[JavaScript] 고차 함수 (0) | 2019.01.05 |
---|---|
[JavaScript] 클로저 (0) | 2019.01.05 |
[JavaScript] 함수의 정의 (0) | 2019.01.05 |
[JavaScript] 모던 자바스크립트 입문 - 4장 객체와 배열, 함수의 기초 (0) | 2018.12.14 |
[JavaScript] 모던 자바스크립트 입문 - 3장 변수 (0) | 2018.12.13 |