Skip to content

Commit 65a6ed2

Browse files
[조건부 연산자 if와 ?] 수정
- 예시 에러 수정 - 문장 수정
1 parent 8bea506 commit 65a6ed2

File tree

1 file changed

+32
-32
lines changed

1 file changed

+32
-32
lines changed

1-js/02-first-steps/10-ifelse/article.md

Lines changed: 32 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,26 @@
1-
# if문과 조건부 연산자 '?'
1+
# 조건부 연산자 if와 ?
22

3-
조건에 따라 다른 행동을 취해야 할 경우가 있을 수 있습니다.
3+
조건에 따라 다른 행동을 취해야 할 때가 있습니다.
44

5-
이럴 땐, `if`문과 "물음표" 연산자라고도 불리는 조건부 연산자 `?`를 사용하면 됩니다.
5+
이럴 땐, `if`문과 '물음표' 연산자라고도 불리는 조건부 연산자 `?`를 사용하면 됩니다.
66

7-
## "if"
7+
## 'if'
88

99
`if(...)`문은 괄호 안에 들어가는 조건을 평가하는데, 그 결과가 `true`이면 코드 블록이 실행됩니다.
1010

1111
예시:
1212

1313
```js run
14-
let year = prompt('ECMAScript-2015 명세는 몇 년도에 출판되었을까요?, '');
14+
let year = prompt('ECMAScript-2015 명세는 몇 년도에 출판되었을까요?', '');
1515

1616
*!*
1717
if (year == 2015) alert( '정답입니다!' );
1818
*/!*
1919
```
2020

21-
예제에선 조건(`year == 2015`)이 간단한 경우만 다뤘지만, 조건문은 더 복잡할 수도 있습니다.
21+
예시에선 조건(`year == 2015`)이 간단한 경우만 다뤘는데, 조건문은 더 복잡할 수도 있습니다.
2222

23-
조건문이 `true`일때 실행되는 코드 블록이 복수의 구문(statement)으로 구성되어 있다면 코드 블록을 중괄호로 묶어야 합니다.
23+
조건이 `true`일 때 복수의 문을 실행하고 싶다면 중괄호로 코드 블럭을 감싸야 합니다.
2424

2525
```js
2626
if (year == 2015) {
@@ -29,16 +29,16 @@ if (year == 2015) {
2929
}
3030
```
3131

32-
`if`문에서 사용되는 코드 블록을 중괄호 `{}`로 감싸주길 추천합니다. 조건이 참일 경우 실행되는 구문이 단 한 줄이더라도 말이죠. 이렇게 하면 코드의 가독성이 증가합니다.
32+
`if`문을 쓸 때는 조건이 참일 경우 실행되는 구문이 단 한 줄이더라도 중괄호 `{}`를 사용해 코드를 블록으로 감싸는 것을 추천해 드립니다. 이렇게 하면 코드 가독성이 증가합니다.
3333

3434
## 불린형으로의 변환
3535

3636
`if (…)` 문은 괄호 안의 표현식을 평가하고 그 결과를 불린값으로 변환합니다.
3737

3838
<info:type-conversions> 챕터에서 배운 형 변환 규칙을 잠시 상기해 봅시다.
3939

40-
- 숫자 `0`, 빈 문자열`""`, `null`, `undefined`, `NaN`은 불린형으로 변환 시 모두 `false`가 됩니다. 이런 값들은 "거짓 같은(falsy)" 값 이라고 부릅니다.
41-
- 이 외의 값은 불린형으로 변환시 `true`가 되므로 "참 같은 값(truthy)"이라고 부릅니다.
40+
- 숫자 `0`, 빈 문자열`""`, `null`, `undefined`, `NaN`은 불린형으로 변환 시 모두 `false`가 됩니다. 이런 값들은 'falsy(거짓 같은)' 값이라고 부릅니다.
41+
- 이 외의 값은 불린형으로 변환시 `true`가 되므로 'truthy(참 같은)' 값이라고 부릅니다.
4242

4343
이 규칙에 따르면 아래 예시의 코드 블록은 절대 실행되지 않습니다.
4444

@@ -56,7 +56,7 @@ if (1) { // 1은 truthy입니다.
5656
}
5757
```
5858

59-
아래와 같이 확정된 불린값을 `if`문에 전달할 수도 있습니다.
59+
아래와 같이 평가를 통해 확정된 불린값을 `if`문에 전달할 수도 있습니다.
6060

6161
```js
6262
let cond = (year == 2015); // 동등 비교를 통해 true/false 여부를 결정합니다.
@@ -66,13 +66,13 @@ if (cond) {
6666
}
6767
```
6868

69-
## "else"
69+
## 'else'
7070

7171
`if`문엔 `else` 절을 붙일 수 있습니다. `else` 뒤에 이어지는 코드 블록은 조건이 거짓일 때 실행됩니다.
7272

7373
예시:
7474
```js run
75-
let year = prompt('ECMAScript-2015 명세는 몇 년도에 출판되었을까요?, '');
75+
let year = prompt('ECMAScript-2015 명세는 몇 년도에 출판되었을까요?', '');
7676

7777
if (year == 2015) {
7878
alert( '정답입니다!' );
@@ -81,14 +81,14 @@ if (year == 2015) {
8181
}
8282
```
8383

84-
## "else if"로 복수 조건 처리하기
84+
## 'else if'로 복수 조건 처리하기
8585

86-
유사하지만 약간씩 차이가 있는 조건 여러 개를 처리해야 하는 경우도 있습니다. 이럴 때 `else if`를 사용할 수 있습니다.
86+
유사하지만 약간씩 차이가 있는 조건 여러 개를 처리해야 할 때가 있습니다. 이때 `else if`를 사용할 수 있습니다.
8787

8888
예시:
8989

9090
```js run
91-
let year = prompt('ECMAScript-2015 명세는 몇 년도에 출판되었을까요?, '');
91+
let year = prompt('ECMAScript-2015 명세는 몇 년도에 출판되었을까요?', '');
9292

9393
if (year < 2015) {
9494
alert( '숫자를 좀 더 올려보세요.' );
@@ -99,9 +99,9 @@ if (year < 2015) {
9999
}
100100
```
101101

102-
위의 코드에서, 자바스크립트는 조건 `year < 2015`를 먼저 확인합니다. 이 조건이 거짓이라면 다음 조건 `year > 2015`를 확인합니다. 이 조건 또한 거짓이라면 `else` 절 내의 `alert`를 실행합니다.
102+
위 예시에서, 자바스크립트는 조건 `year < 2015`를 먼저 확인합니다. 이 조건이 거짓이라면 다음 조건 `year > 2015`를 확인합니다. 이 조건 또한 거짓이라면 `else` 절 내의 `alert`를 실행합니다.
103103

104-
위 예시에서 사용된 것보다 더 많은 `else if`문을 붙일 수도 있습니다. 이때, 마지막에 붙는 `else`는 필수가 아닌 선택 사항입니다.
104+
`else if` 블록을 더 많이 붙이는 것도 가능합니다. 마지막에 붙는 `else`는 필수가 아닌 선택 사항입니다.
105105

106106
## 조건부 연산자 '?'
107107

@@ -124,9 +124,9 @@ if (age > 18) {
124124
alert(accessAllowed);
125125
```
126126

127-
"물음표(question mark) 연산자"라고도 불리는 "조건부(conditional) 연산자"를 사용하면 위의 코드를 더 짧고 간결하게 변형할 수 있습니다.
127+
'물음표(question mark) 연산자'라고도 불리는 '조건부(conditional) 연산자'를 사용하면 위 예시를 더 짧고 간결하게 변형할 수 있습니다.
128128

129-
조건부 연산자는 물음표`?`로 표시합니다. 피연산자가 세 개이기 때문에 조건부 연산자를 "삼항(ternary) 연산자"라고 부르는 사람도 있습니다. 참고로, 자바스크립트에서 피연산자를 3개나 받는 연산자는 조건부 연산자가 유일합니다.
129+
조건부 연산자는 물음표`?`로 표시합니다. 피연산자가 세 개이기 때문에 조건부 연산자를 '삼항(ternary) 연산자'라고 부르는 사람도 있습니다. 참고로, 자바스크립트에서 피연산자가 3개나 받는 연산자는 조건부 연산자가 유일합니다.
130130

131131
문법:
132132
```js
@@ -146,18 +146,18 @@ let accessAllowed = (age > 18) ? true : false;
146146
아래 예시는 위 예시와 동일하게 동작합니다.
147147

148148
```js
149-
// 연산자 우선순위 규칙에 따라, 비교 연산 "age > 18"이 먼저 실행됩니다.
149+
// 연산자 우선순위 규칙에 따라, 비교 연산 'age > 18'이 먼저 실행됩니다.
150150
// (조건문을 괄호로 감쌀 필요가 없습니다.)
151151
let accessAllowed = age > 18 ? true : false;
152152
```
153153

154154
괄호가 있으나 없으나 차이는 없지만, 코드의 가독성 향상을 위해 괄호를 사용할 것을 권유합니다.
155155

156156
````smart
157-
비교 연산자 자체가 `true/false`를 반환하기 때문에 물음표 연산자를 사용하지 않아도 됩니다.
157+
비교 연산자 자체가 `true`나 `false`를 반환하기 때문에 위 예시에서 물음표 연산자를 사용하지 않아도 됩니다.
158158
159159
```js
160-
// the same
160+
// 동일하게 동작함
161161
let accessAllowed = age > 18;
162162
```
163163
````
@@ -173,7 +173,7 @@ let age = prompt('나이를 입력해주세요.', 18);
173173
let message = (age < 9) ? '아기야 안녕?' :
174174
(age < 18) ? '안녕!' :
175175
(age < 100) ? '환영합니다!' :
176-
'나이가 아닌 값을 입력 하셨군요!';
176+
'나이가 아주 많으시거나, 나이가 아닌 값을 입력 하셨군요!';
177177

178178
alert( message );
179179
```
@@ -199,12 +199,12 @@ if (age < 3) {
199199
}
200200
```
201201

202-
## 부적절한 '?'사용
202+
## 부적절한 '?'
203203

204-
물음표`?`를 `if` 대용으로 쓸 수도 있습니다.
204+
물음표`?``if` 대용으로 쓰는 경우가 종종 있습니다.
205205

206206
```js run no-beautify
207-
let company = prompt('자바스크립트는 어떤 회사가 만들었을까요?, '');
207+
let company = prompt('자바스크립트는 어떤 회사가 만들었을까요?', '');
208208

209209
*!*
210210
(company == 'Netscape') ?
@@ -214,16 +214,16 @@ let company = prompt('자바스크립트는 어떤 회사가 만들었을까요?
214214

215215
조건 `company == 'Netscape'`의 검사 결과에 따라 `?` 뒤에 이어지는 첫 번째 혹은 두 번째 표현식이 실행되어 얼럿 창이 뜹니다.
216216

217-
위 예시에선 검사 결과를 변수에 할당하지 않고, 결과에 따라 실행되는 표현식이 달라지도록 하였습니다.
217+
위 예시에선 평가 결과를 변수에 할당하지 않고, 결과에 따라 실행되는 표현식이 달라지도록 하였습니다.
218218

219-
**이런 식으로 물음표 연산자를 사용하는 것은 좋지 않습니다.**
219+
그런데 **이런 식으로 물음표 연산자를 사용하는 것은 좋지 않습니다.**
220220

221-
개발자 입장에선 `if`문을 사용할 때 보다 코드 길이가 짧아진다는 점 때문에 이 방식이 매력적으로 느껴질 순 있습니다. 하지만 이렇게 코드를 작성하면 가독성이 떨어집니다.
221+
개발자 입장에선 `if`문을 사용할 때 보다 코드 길이가 짧아진다는 점 때문에 물음표`?``if` 대용으로 쓰는 게 매력적일 순 있습니다. 하지만 이렇게 코드를 작성하면 가독성이 떨어집니다.
222222

223223
아래는 `if`를 사용해 변형한 코드입니다. 어느 코드가 더 읽기 쉬운지 직접 비교해 보시기 바랍니다.
224224

225225
```js run no-beautify
226-
let company = prompt('자바스크립트는 어떤 회사가 만들었을까요?, '');
226+
let company = prompt('자바스크립트는 어떤 회사가 만들었을까요?', '');
227227

228228
*!*
229229
if (company == 'Netscape') {
@@ -236,4 +236,4 @@ if (company == 'Netscape') {
236236

237237
코드를 읽을 때 우리의 눈은 수직으로 움직입니다. 수평으로 길게 늘어진 코드보단 여러 줄로 나뉘어 작성된 코드 블록이 더 읽기 쉽죠.
238238

239-
물음표 연산자`?`는 조건에 따라 반환 값을 달리하고자 하는 경우를 위해 존재합니다. 이런 목적에 부합하는 곳에 물음표를 사용하시길 바랍니다. 여러 분기문을 만들어 처리하고자 하는 경우는 `if`를 사용하세요.
239+
물음표 연산자`?`는 조건에 따라 반환 값을 달리하려는 목적으로 만들어졌습니다. 이런 목적에 부합하는 곳에 물음표를 사용하시길 바랍니다. 여러 분기를 만들어 처리할 때는 `if`를 사용하세요.

0 commit comments

Comments
 (0)