回答編集履歴

8

冗長部分削除

2020/08/28 21:03

投稿

shiracamus
shiracamus

スコア5406

test CHANGED
@@ -2,4 +2,4 @@
2
2
 
3
3
  `if (条件) {文_1;}; else 文_2;` は `if (条件) 文_1;; else 文_2;` と等価です。`;`が2つあることになり、2つめでif文が終了したことになります。
4
4
 
5
- `if (0) {printf("1\n");}printf("2\n");` を実行すると、if文が終了した部分の `2` だけが出力されます。
5
+ `if (0) {printf("1\n");}printf("2\n");` を実行すると、if文が終了した部分の `2` が出力されます。

7

用語統一

2020/08/28 21:03

投稿

shiracamus
shiracamus

スコア5406

test CHANGED
@@ -1,5 +1,5 @@
1
1
  `{}` は `;` と等価です。
2
2
 
3
- `if (条件) {文_1;}; else 文_2;` は `if (条件) 文_1;; else 文_2;` と等価です。`;`が2つあることになり、2つめでif文が終了したことになります。
3
+ `if (条件) {文_1;}; else 文_2;` は `if (条件) 文_1;; else 文_2;` と等価です。`;`が2つあることになり、2つめでif文が終了したことになります。
4
4
 
5
5
  `if (0) {printf("1\n");}printf("2\n");` を実行すると、if文が終了した部分の `2` だけが出力されます。

6

説明補足

2020/08/28 20:59

投稿

shiracamus
shiracamus

スコア5406

test CHANGED
@@ -1,5 +1,5 @@
1
1
  `{}` は `;` と等価です。
2
2
 
3
- `if (条件式) 文_1;; else 文_2;` と書いたのと同じです。`;`が2つあることになり、2つめでif文が終了したことになります。
3
+ `if (条件) {文_1;}; else 文_2;` は `if (条件式) 文_1;; else 文_2;` と等価です。`;`が2つあることになり、2つめでif文が終了したことになります。
4
4
 
5
5
  `if (0) {printf("1\n");}printf("2\n");` を実行すると、if文が終了した部分の `2` だけが出力されます。

5

説明変更

2020/08/28 20:59

投稿

shiracamus
shiracamus

スコア5406

test CHANGED
@@ -1,5 +1,5 @@
1
1
  `{}` は `;` と等価です。
2
2
 
3
- `if (条件式) 文_1;; else 文_2;` と書いたのと同じです。1つ目の `;` または `{}` if文が終了したことになります。
3
+ `if (条件式) 文_1;; else 文_2;` と書いたのと同じです。`;`が2つあることになり、2つめでif文が終了したことになります。
4
4
 
5
- `if (0) {printf("1\n");}printf("2\n");` を実行すると、if文から抜けた部分の `2` だけが出力されます。
5
+ `if (0) {printf("1\n");}printf("2\n");` を実行すると、if文が終了した部分の `2` だけが出力されます。

4

説明追記

2020/08/28 20:56

投稿

shiracamus
shiracamus

スコア5406

test CHANGED
@@ -1,5 +1,5 @@
1
1
  `{}` は `;` と等価です。
2
2
 
3
- `if (条件式) 文_1;; else 文_2;` と書いたのと同じです。1つ目の `;` で if文が終了したことになります。
3
+ `if (条件式) 文_1;; else 文_2;` と書いたのと同じです。1つ目の `;` または `{}` で if文が終了したことになります。
4
4
 
5
5
  `if (0) {printf("1\n");}printf("2\n");` を実行すると、if文から抜けた部分の `2` だけが出力されます。

3

誤記訂正

2020/08/28 20:52

投稿

shiracamus
shiracamus

スコア5406

test CHANGED
@@ -1,5 +1,5 @@
1
1
  `{}` は `;` と等価です。
2
2
 
3
- `if (条件式) 文_1;; else 文_2;` と書いたのと同じです。2つ目の `;` で if文が終了したことになります。
3
+ `if (条件式) 文_1;; else 文_2;` と書いたのと同じです。1つ目の `;` で if文が終了したことになります。
4
4
 
5
5
  `if (0) {printf("1\n");}printf("2\n");` を実行すると、if文から抜けた部分の `2` だけが出力されます。

2

プログラム例変更

2020/08/28 20:51

投稿

shiracamus
shiracamus

スコア5406

test CHANGED
@@ -2,6 +2,4 @@
2
2
 
3
3
  `if (条件式) 文_1;; else 文_2;` と書いたのと同じです。2つ目の `;` で if文が終了したことになります。
4
4
 
5
-
6
-
7
- `if (0) printf("1\n"); printf("2\n");` を実行すると、if文から抜けた部分の `2` だけが出力されます。
5
+ `if (0) {printf("1\n");}printf("2\n");` を実行すると、if文から抜けた部分の `2` だけが出力されます。

1

復号文の意味を勘違いしていたので訂正

2020/08/28 20:50

投稿

shiracamus
shiracamus

スコア5406

test CHANGED
@@ -1,19 +1,3 @@
1
- > 複合文は一つの文として扱われると習いましたが、
2
-
3
-
4
-
5
- それが間違いだと思います。
6
-
7
- ブロックは1つの文として扱われます。
8
-
9
-
10
-
11
- if文の実行部には文またはブロックを一つしか書けません。
12
-
13
- 複数の文を書きたいときにブロックを使います。
14
-
15
-
16
-
17
1
  `{}` は `;` と等価です。
18
2
 
19
3
  `if (条件式) 文_1;; else 文_2;` と書いたのと同じです。2つ目の `;` で if文が終了したことになります。