回答編集履歴
2
修正
answer
CHANGED
@@ -4,10 +4,20 @@
|
|
4
4
|
|
5
5
|
**複文**の定義は、単体の`{`と`}`、もしくは、`{`+「ブロック内要素(複数可)」+`}` である。と定められています。
|
6
6
|
|
7
|
-
つまり、`;`は、その文が式文であることを示すためのものであって、全ての文の終わりにつくわけではありません。
|
7
|
+
つまり、`;`は、その文が式文(もしくは他の`;`で終わるタイプの文)であることを示すためのものであって、全ての文の終わりに必ずつくわけではありません。
|
8
8
|
|
9
|
-
`~~;` と `{~~
|
9
|
+
`~~;` と `{~~}` は共に等価の「文」であるという事です。
|
10
10
|
なので、ブロックの終わりには、`;`を付ける必要がありません。
|
11
11
|
|
12
12
|
もし、`{~~};`と書いた場合、それは、`{~~}`と`;`の二つの文があるとみなされます。
|
13
|
-
(単体の`;`も一つの文になるので)
|
13
|
+
(単体の`;`も一つの文になるので)
|
14
|
+
|
15
|
+
if文自体も、名前にそう付いているように1つの文です。
|
16
|
+
if文の定義は、こうなっています
|
17
|
+
`if`+`(`+式+`)`+文
|
18
|
+
もしくは
|
19
|
+
`if`+`(`+式+`)`+文+`else`+文
|
20
|
+
|
21
|
+
この定義から分かるように、if文自体の終わりには`;`は必須ではありません。
|
22
|
+
つまり、ifの最後についている、`;`は、if文の一部というより、if文の中の最後の文の一部です。
|
23
|
+
なので、最後に書かれている「文」の内容次第で、終わりが、`;`にも`}`にもなります。
|
1
追加
answer
CHANGED
@@ -7,4 +7,7 @@
|
|
7
7
|
つまり、`;`は、その文が式文であることを示すためのものであって、全ての文の終わりにつくわけではありません。
|
8
8
|
|
9
9
|
`~~;` と `{~~;}` は共に等価の「文」であるという事です。
|
10
|
-
なので、ブロックの終わりには、`;`を付ける必要がありません。
|
10
|
+
なので、ブロックの終わりには、`;`を付ける必要がありません。
|
11
|
+
|
12
|
+
もし、`{~~};`と書いた場合、それは、`{~~}`と`;`の二つの文があるとみなされます。
|
13
|
+
(単体の`;`も一つの文になるので)
|