パスワードを忘れた? アカウント作成
この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。

「世界一IQの低い」ソースコード」記事へのコメント

  • というわけで、「自分ならこう書く」具体例をどうぞ。
    • by Anonymous Coward

      テーブルを使うといいのでしょうか?

      String[][] KeyEventTable = {{KeyEvent.KEYCODE_1, "KEYCODE_1"}, {KeyEvent.KEYCODE_2, "KEYCODE_"}, …};
      for (int i = 0 ;; i++) if (keyCode == KeyEventTable[i][0]) ret=KeyEventTable[i][1];

      2行で書けた ^^/

      • > 2行で書けた ^^/

        だが待って欲しい。
        それを2行と言うなら、原典は1つのif文だから1行ではないだろうか。

        keyCodeがsignedで負値だった場合への対応とか、想定外の値をとった場合の対応が必要そう。

        8bitの時は全パターン網羅しておくのも大した手間じゃなかったが、
        16bit以上で網羅は・・やったことはあるんだけどw

        • by Anonymous Coward

          色々突っ込みが入ったので直してみました。

          // keyCodeはintでKeyEventで定義される値以外が入ってはいけない。違反したときの戻り値は不定
          String[][] KeyEventTable = {{Integer.toString(KeyEvent.KEYCODE_1), "KEYCODE_1"}, {Integer.toString(KeyEvent.KEYCODE_2), "KEYCODE_2"}};
          for (int i = 0 ; i KeyEventTable.length ; i++) if (keyCode == Integer.parseInt(KeyEventTable[i][0])) ret=KeyEventTable[i][1];

          仕様を定義すればいいのですよね。
          1行増えてしまった(;_;)

日本発のオープンソースソフトウェアは42件 -- ある官僚

処理中...