Skip to content

Commit 1f390c0

Browse files
authored
Merge pull request #65 from jigintern/haruto17/chapter-4
📝 4章「条件によって処理を変えよう」の修正
2 parents dbea346 + d07d162 commit 1f390c0

9 files changed

Lines changed: 40 additions & 40 deletions

javascript/DOCS.md

Lines changed: 40 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
- [3-5. 論理演算](#3-5-論理演算)
2525
- [4. 条件によって処理を変えよう](#4-条件によって処理を変えよう)
2626
- [4-1. 比較演算子](#4-1-比較演算子)
27-
- [4-2. if文](#4-2-if文)
27+
- [4-2. if 文](#4-2-if-文)
2828
- [4-3. 三項演算子](#4-3-三項演算子)
2929
- [5. 繰り返し処理をさせよう](#5-繰り返し処理をさせよう)
3030
- [5-1. 配列](#5-1-配列)
@@ -288,72 +288,72 @@ value += 2; // value = value + 2; と同じ
288288

289289
## 4. 条件によって処理を変えよう
290290

291-
数学の問題でも場合分けが発生するように、プログラムでも条件によって処理を変更したいことがあります。
292-
ここではプログラムで条件分岐を記述する方法を説明します
291+
数学の問題で場合分けが発生するように、プログラムでも条件によって処理を変更したいことがあります。
292+
ここでは二次方程式の判別式を例に、条件分岐を記述する方法を説明します
293293

294294
### 4-1. 比較演算子
295295

296-
場合分けが発生する簡単な例として、二次方程式の判別式Dがあります。判別式Dは以下の式で、次のような分岐がわかります。
297-
判別式D: $D = b^2 - 4ac$
298-
判別式Dの結果が
296+
まずはじめに判別式 $D$ は以下の式で表され、 $D$ の値によって3つの分岐がわかります。
299297

300-
- 正の値 → 実数解
301-
- 0 → 重解
302-
- 負の値 → 虚数解
298+
$D = b^2 - 4ac$
303299

304-
これは判別式Dの結果を`value`として、それぞれ比較演算子を用いて以下のように表現できます。
300+
- 正の値 のとき 実数解をもつ
301+
- 0 のとき 重解をもつ
302+
- 負の値 のとき 虚数解をもつ
305303

306-
- 正の値 → `value > 0`
307-
- 0 → `value === 0`
308-
- 負の値 → `value < 0`
304+
ここで $D$ の結果を `value` という変数に置き換えたとき、それぞれの条件は比較演算子を用いて以下のように表せます。
309305

310-
JSではこのようにして値の大小や等価かどうかを比較できます。
311-
以下に比較演算子の表を示します。
306+
- 正の値 → `value > 0`
307+
- 0 → `value === 0`
308+
- 負の値 → `value < 0`
309+
310+
JS ではこのようにして値の大小や等価かどうかを比較できます。以下に比較演算子の表を示します。
312311

313312
| 演算 | 記述 |
314313
| ---- | ---- |
315314
| `厳密等価` | `a === b` |
316315
| `厳密不等価` | `a !== b` |
317-
| `超過/より大きい` | `a > b` |
316+
| `超過 / より大きい` | `a > b` |
318317
| `以上` | `a >= b` |
319-
| `未満/より小さい` | `a < b` |
318+
| `未満 / より小さい` | `a < b` |
320319
| `以下` | `a <= b` |
321320

322321
<details>
323-
<summary>厳密でない等価/不等価</summary>
322+
<summary>厳密でない等価 / 不等価</summary>
324323

325-
厳密等価/厳密不等価の演算が存在するということは、厳密**でない**等価・不等価の演算があると言うことです。
326-
これらは暗黙的な型変換を行うため一見して予想できない挙動をすることがあります。
327-
このため、厳密等価演算子・厳密不等価演算子を使用することが推奨されます。
328-
以下に厳密でない等価・不等価演算子の表を示します。
324+
厳密等価 / 厳密不等価とは逆に、厳密**でない**等価 / 不等価も存在します。
325+
これらは暗黙的な型変換を行うため、一見して予想できない挙動をすることがあります。
326+
このため、厳密等価 / 厳密不等価演算子を使用することが推奨されます。
327+
以下に厳密**でない**等価 / 不等価演算子の表を示します。
329328

330329
| 演算 | 記述 |
331330
| ---- | ---- |
332331
| 等価 | `==` |
333332
| 不等価 | `!=` |
334333

335-
繰り返しになりますが、厳密でない演算子の使用は非推奨です。
336334
</details>
337335

338-
### 4-2. if文
336+
### 4-2. if 文
337+
338+
4-1. では比較演算子を用いて条件を表現する方法を説明しました。ここでは判別式 $D$ の結果を評価し、実数解・重解・虚数解のどれをもつのか出力するプログラムを考えてみましょう。
339339

340-
3-1.でプログラムで条件を表現する方法を説明しました。先程の判別式Dの結果を評価し、実数解、重解、虚数解のどれになるかを出力するプログラムを作ることを考えてみましょう。
341-
評価の結果によって処理を分岐させるためには `if`文を使います。
340+
評価の結果によって処理を分岐させるためには `if` 文を使います。
342341

343342
```javascript
344343
if (<条件1>) {
345-
条件1が真のときの処理
344+
条件1が真のときの処理
346345
} else if (<条件2>) {
347-
条件2が真のときの処理
346+
条件2が真のときの処理
348347
} else {
349-
条件1も条件2も偽のときの処理
348+
条件1と条件2が偽のときの処理
350349
}
351350
```
352351

353-
if文は`()`内の評価結果が真のときに直後の`{}`で囲まれたブロック内の処理を行い、`()`内の評価結果が偽のときに直後の`else`句の処理を行います。このとき、`else`のあとに`if`でif文をつなげることで条件分岐を追加できます。`else`句のあとにある`{}`ブロック内の処理は、それより前にある`if``else if`のすべての条件を満たさなかったときに実行されます。
354-
`if`\~`else if`\~`else`句は一連の処理の塊として捉えられます。この中で上から順に評価が行われるため、条件の順番には気をつける必要があります。
352+
if 文は `()` 内の評価結果が真のとき、直後の `{}` で囲まれたブロック内の処理を行います。反対に偽であるときは直後の `else` 句の処理を行います。このとき、`else` のあとに `if` で if 文をつなげることで条件分岐を追加できます。
353+
`else` 句のあとにある `{}` ブロック内の処理は、それより前にある `if``else if` のすべての条件を満たさなかったときに実行されます。
354+
`if` から `else` までは一連の処理の塊として捉えられます。この中で上から順に評価が行われるため、条件の順番には気をつける必要があります。
355355

356-
では判別式の結果から解がどうなるかを出力するプログラムを以下に書きます
356+
では判別式 $D$ の結果を評価して、どの解をもつのか出力するプログラムを以下に示します
357357

358358
```javascript
359359
let a, b, c;
@@ -364,17 +364,17 @@ c = <定数項>;
364364
const d = b ** 2 - 4 * a * c;
365365

366366
if (d === 0) {
367-
console.log('重解');
367+
console.log('重解');
368368
} else if (d > 0) {
369-
console.log('実数解');
369+
console.log('実数解');
370370
} else {
371-
console.log('虚数解');
371+
console.log('虚数解');
372372
}
373373
```
374374

375375
実行結果は以下のようになります。
376376

377-
![重解](imgs/if-discriminant-1.png)![実数解](imgs/if-discriminant-2.png)
377+
![重解](imgs/if-discriminant-1.webp)![実数解](imgs/if-discriminant-2.webp)
378378

379379
### 4-3. 三項演算子
380380

@@ -385,7 +385,7 @@ if (d === 0) {
385385
value = <条件> ? <条件が真のときの値> : <条件が偽のときの値>;
386386
```
387387

388-
例えばある値の真偽によって値を返したいときに活用できます。↑の判別式の例を書き換えると以下のようになります。
388+
例えばある値の真偽に応じて値を返したいときに活用できます。4-2. の判別式の例を書き換えると以下のようになります。
389389

390390
```javascript
391391
let a, b, c;
@@ -404,10 +404,10 @@ const res = d === 0
404404
console.log(res);
405405
```
406406

407-
三項演算子はこのように三項演算子の下に三項演算子を書くことができます
408-
しかし、階層が深くなると複雑で読みづらくなるので注意が必要です
407+
このように三項演算子の下に、新たに三項演算子を書くことができます
408+
しかし階層が深くなると複雑になり、読みづらくなるので注意が必要です
409409

410-
![三項演算子](imgs/conditional-operator-1.png)![三項演算子](imgs/consitional-operator-2.png)
410+
![三項演算子](imgs/conditional-operator-1.webp)![三項演算子](imgs/conditional-operator-2.webp)
411411

412412
## 5. 繰り返し処理をさせよう
413413

-9.55 KB
Binary file not shown.
3.93 KB
Loading
3.88 KB
Loading
-10.1 KB
Binary file not shown.
-11.4 KB
Binary file not shown.
4.75 KB
Loading
-11.9 KB
Binary file not shown.
5.32 KB
Loading

0 commit comments

Comments
 (0)