回答編集履歴
2
markdown
answer
CHANGED
@@ -2,16 +2,16 @@
|
|
2
2
|
|
3
3
|
> ```JavaScript
|
4
4
|
> if (x < 0) {
|
5
|
-
>
|
5
|
+
> x = 0;
|
6
|
-
>
|
6
|
+
> } else if (x > COL - 1) {
|
7
|
-
>
|
7
|
+
> x = COL - 1;
|
8
|
-
>
|
8
|
+
> }
|
9
|
-
>
|
9
|
+
> if (y < 0) {
|
10
|
-
>
|
10
|
+
> y = 0;
|
11
|
-
>
|
11
|
+
> } else if (y > ROW - 1) {
|
12
|
-
>
|
12
|
+
> y = ROW - 1;
|
13
|
-
>
|
13
|
+
> }
|
14
|
-
>
|
14
|
+
> ```
|
15
15
|
|
16
16
|
私はこのコードは「無駄な処理がない」良いコードと思います。
|
17
17
|
読みづらいと感じる**具体的なポイント**はどこでしょうか。
|
1
1,0 が期待通りに動かないので、コード修正
answer
CHANGED
@@ -22,12 +22,15 @@
|
|
22
22
|
例えば、次のようにコードを書き換えたとして、
|
23
23
|
|
24
24
|
```JavaScript
|
25
|
-
x = x
|
25
|
+
x = x > COL - 1 && COL - 1 || x > 0 && x || 0;
|
26
|
-
y = y
|
26
|
+
y = y > ROW - 1 && ROW - 1 || y > 0 && y || 0;
|
27
27
|
```
|
28
28
|
|
29
29
|
コードの行数は減りましたが、読む苦労は増えていると感じます。
|
30
|
-
なぜなら、
|
30
|
+
なぜなら、x,yの初期値分の条件式/代入値は元のコードにはない「無駄な処理」で、それが頭の中でアルゴリズムを描くまての手間を大きくしているからです。
|
31
31
|
良いコードとは**アルゴリズムが短いコード**であって、実際に書くコードが短い必要はありません。
|
32
32
|
|
33
|
+
**(2018/08/10 13:17追記)**
|
34
|
+
短縮化したコードの `1,0` が期待通りに動作しない為、コードを修正しました。
|
35
|
+
|
33
36
|
Re: himejiy3 さん
|