• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ランダムで文字を表示)

質問:ランダムで文字を表示

このQ&Aのポイント
  • 質問なのですが、最後から3行目の[i-5]の5は何を意味しているのでしょうか?
  • JavaScriptを使って作成したコードですが、理解できていない部分があります。
  • 誰か教えていただけると助かります。

質問者が選んだベストアンサー

  • ベストアンサー
  • chiwa-CF
  • ベストアンサー率51% (36/70)
回答No.2

>現在以下のように複数のテキストの中からランダムで3つずつ表示しています。 moji[1]~[6]に登録されたテキストのうち、ランダムで選ばれた1~6の数字から順番に3つ表示するプログラムですね。 つまり、 1が選ばれれば、moji[1]、moji[2]、moji[3]を表示 2が選ばれれば、moji[2]、moji[3]、moji[4]を表示    ・    ・ 5が選ばれれば、moji[5]、moji[6]、moji[2]を表示 6が選ばれれば、moji[6]、moji[2]、moji[3]を表示 としようとしてます。 (5と6がおかしい感じなのは一番下で解説しています。) for(i=I;i<=I+2;i++){    if ( i<=6 ){ document.write(moji[i]+"<BR>"); }    else{ document.write(moji[i-5]+"<BR>"); }    } iの値が、ランダムで選ばれた1~6のいずれかの数字(I)からスタートして、 +2した値(I+2)までループする処理です。 この場合、Iが5や6になると、+2した値が7や8になってしまい、 参照する文字がなくなってしまうので、-5しているのです。 これにより、7は2に、8は3になります。 本当は 5が選ばれれば、moji[5]、moji[6]、moji[1]を表示 6が選ばれれば、moji[6]、moji[1]、moji[2]を表示 のほうがいいように感じます。 この場合-5でなく-6にしてみてください。

qoopzzz
質問者

お礼

丁寧にありがとうございます! とりあえずHPで使う事ができますm(__)m 勉強になりました。意味を理解しながら見てみます。

その他の回答 (1)

回答No.1

>for(i=I;i<=I+2;i++){ >   if ( i<=6 ){ document.write(moji[i]+"<BR>"); } >   else{ document.write(moji[i-5]+"<BR>"); } else{...}になる条件は i が7以上なので、6以下にするために5を引くという単純なことですけど・・・

qoopzzz
質問者

お礼

最初から計算式を見て勉強してみます。 ありがとうございます!

関連するQ&A