teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

markdown

2018/08/12 00:21

投稿

think49
think49

スコア18194

answer CHANGED
@@ -2,16 +2,16 @@
2
2
 
3
3
  > ```JavaScript
4
4
  > if (x < 0) {
5
- > x = 0;
5
+ > x = 0;
6
- > } else if (x > COL - 1) {
6
+ > } else if (x > COL - 1) {
7
- > x = COL - 1;
7
+ > x = COL - 1;
8
- > }
8
+ > }
9
- > if (y < 0) {
9
+ > if (y < 0) {
10
- > y = 0;
10
+ > y = 0;
11
- > } else if (y > ROW - 1) {
11
+ > } else if (y > ROW - 1) {
12
- > y = ROW - 1;
12
+ > y = ROW - 1;
13
- > }
13
+ > }
14
- > ```
14
+ > ```
15
15
 
16
16
  私はこのコードは「無駄な処理がない」良いコードと思います。
17
17
  読みづらいと感じる**具体的なポイント**はどこでしょうか。

1

1,0 が期待通りに動かないので、コード修正

2018/08/12 00:21

投稿

think49
think49

スコア18194

answer CHANGED
@@ -22,12 +22,15 @@
22
22
  例えば、次のようにコードを書き換えたとして、
23
23
 
24
24
  ```JavaScript
25
- x = x < 0 && 1,0 || x > COL - 1 && COL - 1 || x;
25
+ x = x > COL - 1 && COL - 1 || x > 0 && x || 0;
26
- y = y < 0 && 1,0 || y > ROW - 1 && ROW - 1 || y;
26
+ y = y > ROW - 1 && ROW - 1 || y > 0 && y || 0;
27
27
  ```
28
28
 
29
29
  コードの行数は減りましたが、読む苦労は増えていると感じます。
30
- なぜなら、カンマ演算子や最後のx,yの初期値は元のコードにはない「無駄な処理」で、それが頭の中でアルゴリズムを描くまての手間を大きくしているからです。
30
+ なぜなら、x,yの初期値分の条件式/代入値は元のコードにはない「無駄な処理」で、それが頭の中でアルゴリズムを描くまての手間を大きくしているからです。
31
31
  良いコードとは**アルゴリズムが短いコード**であって、実際に書くコードが短い必要はありません。
32
32
 
33
+ **(2018/08/10 13:17追記)**
34
+ 短縮化したコードの `1,0` が期待通りに動作しない為、コードを修正しました。
35
+
33
36
  Re: himejiy3 さん