1- # [ WIP ] 4.1 if文
1+ # 4.1 if文
22
33## 4.1.1 if
44
5- 特定の条件を満たす時だけ実行したい時は、if 文を用いる。if の後に条件を記し 、その後の ` {} ` に条件を満たしていた時だけ実行したい命令を記述する 。
5+ 何らかの処理を、 ** 特定の条件を満たすときにだけ実行したい ** 場合は、if文と呼ばれる構文を用いる。 ` if ` の後に ** 条件 ** を記し 、その後の` {} ` の中に条件を満たしていたときだけ実行したい命令を記述する 。
66
77以下は、入力された点数が60点以上であれば「合格」、そうでなければ「不合格」と表示するプログラムである。
88
@@ -12,7 +12,7 @@ using namespace std;
1212
1313int main() {
1414 cout << "点数を入力してください。" << endl;
15- int score = 0 ;
15+ int score;
1616 cin >> score;
1717
1818 if (score >= 60) {
@@ -37,7 +37,7 @@ flowchart LR
3737 condunder --> |No| e[End]
3838```
3939
40- ` score >= 60 ` は、 $score \geq 60$ と同じである。 ` +-/* ` と同じくして、条件を記述する演算子も存在する。演算子は以下の通り。
40+ ` score >= 60 ` は、 $score \geq 60$と同じである。` +-/* ` と同じくして、条件を記述する演算子も存在する。演算子は以下の通り。
4141
4242| 演算子 | 数学の記号 |
4343| ------| --------|
@@ -49,33 +49,32 @@ flowchart LR
4949| ` != ` | $\neq$ |
5050
5151::: warning
52- ` == ` と ` = ` を混同しないように注意。 ` = ` は** 代入** 、 ` == ` が** 等価** である。
52+ ` == ` と ` = ` を混同しないように注意。` = ` は** 代入** 、 ` == ` が** 等価** である。
5353:::
5454
5555## 4.1.2 else
5656
57- 3.1.1. で示した例は、60点以上「でない」ときを ` if (score < 60) ` と記述することで実装した。ただ、実際には「そうでない時」を else
58- 文によって簡単に記述できる。
57+ 4.1.1で示した例は、60点以上「でない」ときを` if (score < 60) ` と記述することで実装した。ただ、実際には「そうでないとき」を** else文** によって簡単に記述できる。
5958
6059``` cpp:line-numbers
6160#include <iostream>
6261using namespace std;
6362
6463int main() {
6564 cout << "点数を入力してください。" << endl;
66- int score = 0 ;
67- cin >> score;
65+ int score;
66+ cin >> score;
6867
6968 if (score >= 60) {
70- cout << "合格です" << endl;
69+ cout << "合格です。 " << endl;
7170 } else {
72- cout << "不合格です" << endl;
71+ cout << "不合格です。 " << endl;
7372 }
7473}
7574```
7675
7776::: tip
78- else 文は 、if文の終わり( = ` } ` )の次に書く必要がある。
77+ else文は 、if文の終わり(= ` } ` )の次に書く必要がある。
7978:::
8079
8180``` mermaid
@@ -89,24 +88,24 @@ flowchart LR
8988
9089## 4.1.3 else if
9190
92- 3 .1.2. のコード に 「満点だったら」という条件を足す。
91+ 4 .1.2のコードに 「満点だったら」という条件を足す。
9392
9493``` cpp:line-numbers
9594#include <iostream>
9695using namespace std;
9796
9897int main() {
9998 cout << "点数を入力してください。" << endl;
100- int score = 0 ;
99+ int score;
101100 cin >> score;
102101
103102 if (score == 100) {
104- cout << "満点です" << endl;
103+ cout << "満点です。 " << endl;
105104 } else {
106105 if (score >= 60) {
107- cout << "合格です" << endl;
106+ cout << "合格です。 " << endl;
108107 } else {
109- cout << "不合格です" << endl;
108+ cout << "不合格です。 " << endl;
110109 }
111110 }
112111}
@@ -124,23 +123,23 @@ flowchart LR
124123 printunder --> e
125124```
126125
127- ただ、このように書くのは冗長なので、` else if ` と短縮する事が許されている。
126+ ただ、このように書くのは冗長なので、` else if ` と短縮する事が許されている。
128127
129128``` cpp:line-numbers
130129#include <iostream>
131130using namespace std;
132131
133132int main() {
134133 cout << "点数を入力してください。" << endl;
135- int score = 0 ;
134+ int score;
136135 cin >> score;
137136
138137 if (score == 100) {
139- cout << "満点です" << endl;
138+ cout << "満点です。 " << endl;
140139 } else if (score >= 60) {
141- cout << "合格です" << endl;
140+ cout << "合格です。 " << endl;
142141 } else {
143- cout << "不合格です" << endl;
142+ cout << "不合格です。 " << endl;
144143 }
145144}
146145```
@@ -149,23 +148,28 @@ int main() {
149148
150149## 4.1.4 変数のスコープ
151150
152- 変数が使える範囲には制限があり、これを変数のスコープと呼ぶ 。
151+ 変数が使える範囲には制限があり、これを変数の ** スコープ ** と呼ぶ 。
153152
154- 具体的には、 ` {} ` の外からは変数にアクセスできない。
153+ 具体的には、` {} ` の外からは変数にアクセスできない。
155154
156- 例えば次のソースコードで言えば、 変数 ` z ` は 4 ~ 6 行目でしか使用できない。
157- ** 8 行目は正しく実行できない。(コンパイルエラーとなる)**
155+ 例えば次のプログラムで言えば、変数` z ` は8行目から10行目まででしか使用できない。** 12行目は正しく実行できない。(コンパイルエラーとなる。)**
158156
159- 変数 ` x ` は 1行目から 9 行目まで好きなところで使用できる 。
157+ 変数` x ` は5行目から13行目まで好きなところで使用できる 。
160158
161159``` cpp:line-numbers
162- int x = 8;
160+ #include <iostream>
161+ using namespace std;
162+
163+ int main() {
164+ int x = 8;
163165
164- if (x < 10) {
165- int z = 10;
166- cout << z << endl; // OK !
167- cout << x << endl; // OK !
166+ if (x < 10) {
167+ int z = 10;
168+ cout << z << endl; // OK!
169+ cout << x << endl; // OK!
170+ }
171+ cout << z << endl; // NG
172+ cout << x << endl; // OK!
168173}
169- cout << z << endl; // NG
170- cout << x << endl; // OK !
174+
171175```
0 commit comments