回答編集履歴

2

修正

2020/08/29 02:55

投稿

amiya
amiya

スコア1218

test CHANGED
@@ -10,11 +10,11 @@
10
10
 
11
11
 
12
12
 
13
- つまり、`;`は、その文が式文であることを示すためのものであって、全ての文の終わりにつくわけではありません。
13
+ つまり、`;`は、その文が式文(もしくは他の`;`終わるタイプの文)であることを示すためのものであって、全ての文の終わりに必ずつくわけではありません。
14
14
 
15
15
 
16
16
 
17
- `~~;` と `{~~;}` は共に等価の「文」であるという事です。
17
+ `~~;` と `{~~}` は共に等価の「文」であるという事です。
18
18
 
19
19
  なので、ブロックの終わりには、`;`を付ける必要がありません。
20
20
 
@@ -23,3 +23,23 @@
23
23
  もし、`{~~};`と書いた場合、それは、`{~~}`と`;`の二つの文があるとみなされます。
24
24
 
25
25
  (単体の`;`も一つの文になるので)
26
+
27
+
28
+
29
+ if文自体も、名前にそう付いているように1つの文です。
30
+
31
+ if文の定義は、こうなっています
32
+
33
+ `if`+`(`+式+`)`+文
34
+
35
+ もしくは
36
+
37
+ `if`+`(`+式+`)`+文+`else`+文
38
+
39
+
40
+
41
+ この定義から分かるように、if文自体の終わりには`;`は必須ではありません。
42
+
43
+ つまり、ifの最後についている、`;`は、if文の一部というより、if文の中の最後の文の一部です。
44
+
45
+ なので、最後に書かれている「文」の内容次第で、終わりが、`;`にも`}`にもなります。

1

追加

2020/08/29 02:55

投稿

amiya
amiya

スコア1218

test CHANGED
@@ -17,3 +17,9 @@
17
17
  `~~;` と `{~~;}` は共に等価の「文」であるという事です。
18
18
 
19
19
  なので、ブロックの終わりには、`;`を付ける必要がありません。
20
+
21
+
22
+
23
+ もし、`{~~};`と書いた場合、それは、`{~~}`と`;`の二つの文があるとみなされます。
24
+
25
+ (単体の`;`も一つの文になるので)