Japanese subtitles

← We Have Intercepted A Secret Message

Get Embed Code
6 Languages

Showing Revision 1 created 10/29/2014 by K2480.

  1. まずdecodeメソッドを
    どのように使うか見てみましょう
  2. このメソッドは解読したメッセージの入った
    Stringオブジェクトを返します 引数は不要です
  3. ではdecoder.decodeメソッドの実行結果を
    DecoderTesterクラス内で出力したいと思います
  4. decoderオブジェクトはすでに暗号化された
    メッセージの文字列と共に生成されており
  5. 文字列を再度引き渡す必要はありません
    ではDecoderクラスに戻りましょう
  6. ゼロ番目から始めて10番目ごとの文字を読む
    forループを書く必要があります
  7. 文字列を解読しているのでインデックスが
  8. その長さに満たない限り処理を繰り返します
    変数encodeMessageは解読中の文字列です
  9. 変数iは毎回1ずつではなく
    10ずつインクリメントするので
  10. 10番目ごとの文字だけを見ることができます
    ループの中で繰り返すことは
  11. i番目の文字を読むことと
    その文字を変数decodedMessageに付け足すことです
  12. そしてdecodedMessage = encodedMessage +
    encodedMessage.substring(i,i+1)となります
  13. 覚えておいてください これが
    より長い文字列から1文字を取り出す方法です
  14. うまくいくか見てみましょう
    さらに秘密のメッセージがあるようです
  15. それを知るには別のインデックスで始めます
  16. 起こり得るいくつかのバグについて
    少しお話ししましょう
  17. もし間違ってここをこのように
    小なりイコールと書いてしまうと
  18. 文字列の範囲外例外が発生するかもしれません
    それは変数encodedMessageの
  19. 長さより大きいインデックスに
    アクセスしようとした時に発生します
  20. 範囲外例外はランタイムエラーです
    プログラムを止めて
  21. 存在しない値にアクセスしていると警告します
  22. 警告もなくプログラムの結果が
    めちゃくちゃになるよりずっといいです
  23. 正しいけれど少し不格好な条件式を
    書くこともできます
  24. 例えばi <= encodedMessage.length()
    - 1です これでも機能しますが
  25. あまりすっきりしていません
    文字列を反復処理する場合は
  26. i < encodedMessage.Length()
    とするのがベストです