Skip to content

Commit 41c8cbd

Browse files
authored
「条件分岐」の章を改訂 (#11)
1 parent 047e1f0 commit 41c8cbd

File tree

7 files changed

+157
-126
lines changed

7 files changed

+157
-126
lines changed
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
<!doctype html>
2+
<html lang="ja">
3+
<head>
4+
<meta charset="utf-8" />
5+
<title>小テスト</title>
6+
</head>
7+
<body>
8+
<script src="./script.js"></script>
9+
</body>
10+
</html>
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
let score = 85;
2+
if (score >= 80) {
3+
document.write("合格です。");
4+
}

docs/07-if-statement/_samples/the-right-to-vote/script.js

Lines changed: 0 additions & 8 deletions
This file was deleted.

docs/07-if-statement/_samples/the-right-to-vote/index.html renamed to docs/07-if-statement/_samples/voting-rights/index.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
<html lang="ja">
33
<head>
44
<meta charset="utf-8" />
5-
<title>Title</title>
5+
<title>選挙権</title>
66
</head>
77
<body>
88
<script src="./script.js"></script>
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
let age = 12;
2+
if (age < 18) {
3+
document.write("選挙権はありません。");
4+
} else if (age < 25) {
5+
document.write("投票に行けます。");
6+
} else {
7+
document.write("衆議院議員に立候補できます。");
8+
}

docs/07-if-statement/flowchart.drawio.svg

Lines changed: 71 additions & 61 deletions
Loading

docs/07-if-statement/index.mdx

Lines changed: 63 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -4,107 +4,114 @@ title: 条件分岐
44

55
## if 文
66

7-
**if 文**を用いると、特定の条件下のみで実行されるプログラムを記述することができます
7+
**if 文**を使うと、特定の条件の時だけ実行される処理を書くことができます
88

9-
## 基本構造
9+
次のプログラムを実行すると、`未成年です。` と表示されますが、1 行目を `let age = 18;` に変更すると何も表示されなくなります。
1010

11-
```javascript
12-
let age = 18;
13-
if (age < 20) {
14-
document.write("お酒を飲めません");
11+
```javascript showLineNumbers
12+
let age = 12;
13+
if (age < 18) {
14+
document.write("未成年です。");
1515
}
1616
```
1717

18-
このプログラムは、`お酒は飲めません` と表示しますが、1 行目を `let age = 20;` に変更すると何も表示されなくなります。
18+
2 行目の `if (age < 18)` がポイントです。
19+
`age < 18``true` になります。
20+
if 文では、`(``)` で囲まれた部分が、`true` になると、`{``}` で囲まれた処理が実行されます。
21+
このため、`未成年です。` が表示されたのです。
1922

20-
2 行目の `if (age < 20) ` 部分がポイントです。
21-
ここに差し掛かると、括弧内の<Term>式</Term> `age < 20``true``false` か判断され、`true` になります。
22-
このため、直後の波括弧内の処理が実行されます。
23+
### 確認問題
2324

24-
if 文の基本構造は
25+
学校で小テストがありました。
2526

26-
```javascript
27-
if (式) {
28-
処理;
29-
}
30-
```
27+
テストの点数を表す変数 `score` が用意されています。
3128

32-
で、<Term>式</Term>の結果が `true` であれば処理が実行されます
29+
点数が 80 点以上なら、`合格です。` と表示してください
3330

34-
## if ~ else
31+
```javascript
32+
let score = 85;
33+
// ここにif文を書いてください。
34+
```
3535

36-
if ~ else 構文を用いると、条件が満たされなかったときの処理を記述できます。
36+
<Answer title="小テスト">
3737

3838
```javascript
39-
if (式) {
40-
処理1;
41-
} else {
42-
処理2;
39+
let score = 85;
40+
if (score >= 80) {
41+
document.write("合格です。");
4342
}
4443
```
4544

46-
{/* prettier-ignore */}
47-
<Term>式</Term>の結果が `true` であれば処理 1 が、`false` であれば処理 2 が実行されます。
45+
<ViewSource url={import.meta.url} path="_samples/quiz" />
4846

49-
```javascript
50-
let age = 18;
51-
if (age >= 20) {
52-
document.write("お酒が飲めます");
47+
</Answer>
48+
49+
## if ~ else 文
50+
51+
if ~ else 文を使うと、条件が満たされなかったときの処理を書くことができます。
52+
53+
次のプログラムを実行すると、`age``18` 未満の場合は `未成年です。` が表示されますが、`18` 以上の場合は `成年です。` が表示されます。
54+
55+
```javascript showLineNumbers
56+
let age = 12;
57+
if (age < 18) {
58+
document.write("未成年です。");
5359
} else {
54-
document.write("お酒が飲めません");
60+
document.write("成年です。");
5561
}
5662
```
5763

58-
この例では、`age >= 20` の結果が `false` となるので、`未成年はお酒が飲めません` が表示されます
64+
`age < 18` の結果が `true` の場合は 3 行目が実行され、`false` の場合は 5 行目が実行されています
5965

60-
## if ~ else if ~ else
66+
## if ~ else if ~ else
6167

62-
if ~ else if ~ else 構文を使うと、複数の条件を重ねることができます。
68+
if ~ else if ~ else 文を使うと、複雑な条件を表すことができます。
69+
70+
次のプログラムを実行すると、変数 `weather``晴れ` の場合は、`今日は晴れです。` と表示されます。
71+
変数 `weather``晴れ` ではなく `` の場合は、`今日は雨です。傘を持ちましょう。` と表示されます。
72+
変数 `weather``晴れ` でも `` でもない場合は、`天気がわかりません。` と表示されます。
6373

6474
```javascript
65-
if (式1) {
66-
処理1;
67-
} else if (式2) {
68-
処理2;
75+
let weather = "晴れ";
76+
if (weather === "晴れ") {
77+
document.write("今日は晴れです。");
78+
} else if (weather === "") {
79+
document.write("今日は雨です。傘を持ちましょう。");
6980
} else {
70-
処理3;
81+
document.write("天気がわかりません。");
7182
}
7283
```
7384

7485
![if 文のフローチャート](./flowchart.drawio.svg)
7586

76-
## 演習
87+
## 演習問題
88+
89+
自分の年齢を表す変数 `age` が用意されています。
7790

78-
自分の年齢を<Term>変数</Term>に入れておきます
91+
自分の年齢が 18 歳未満なら `選挙権はありません。` と表示して、18 歳以上 25 歳未満なら `投票に行けます。` と表示して、25 歳以上なら `衆議院議員に立候補できます。` と表示してください
7992

8093
```javascript
81-
let age = 20;
94+
let age = 12;
95+
// ここにif~else if~else文を書いてください。
8296
```
8397

84-
下を満たすプログラムを作成してください。
85-
86-
- 18 歳未満なら `選挙権はありません` と表示する
87-
- 18 歳以上 ~ 25 歳未満なら `投票に行けます` と表示する
88-
- 25 歳以上なら `衆議院議員に立候補できます` と表示する
89-
9098
<Answer title="選挙権">
9199

92-
if ~ else if ~ else 構文を使うと、次のように書くことができます。
93-
94100
```javascript showLineNumbers
95-
let age = 20;
101+
let age = 12;
96102
if (age < 18) {
97-
document.write("選挙権はありません");
103+
document.write("選挙権はありません");
98104
} else if (age < 25) {
99-
document.write("投票に行けます");
105+
document.write("投票に行けます");
100106
} else {
101-
document.write("衆議院議員に立候補できます");
107+
document.write("衆議院議員に立候補できます");
102108
}
103109
```
104110

105-
<ViewSource url={import.meta.url} path="_samples/the-right-to-vote" />
111+
<ViewSource url={import.meta.url} path="_samples/voting-rights" />
106112

107-
4 行目の式は `age >= 18 && age < 25` ではないかと思うかもしれませんが、上のように `age < 25` としても同じ結果になります。
108-
これは、if ~ else if ~ else 構文では、1 つ目の条件が満たされた場合、2 つ目の条件は実行されないためです。
113+
4 行目は `age < 25` ではなく `18 <= age && age < 25` ではないかと思ったかもしれません。
114+
しかし、`age < 25` と書くことも正しいです。
115+
これは、`age < 18``true` になり 3 行目が実行された場合、4 行目は実行されないからです。
109116

110117
</Answer>

0 commit comments

Comments
 (0)