CodeIQ MAGAZINECodeIQ MAGAZINE

【選択式問題】JavaScript検定RPG ループ処理編 問題解説 #javascript

2015.11.05 Category:CodeIQ問題解説・リーダーボード Tag:

  • 4
  • このエントリーをはてなブックマークに追加
eye_catch

JavaScript の知識を駆使して敵を倒す『JavaScript検定RPG』。

今回の『ループ処理編』は全て解けましたか? というわけで、解答と解説をどうぞ!
by クロノス・クラウン合同会社 柳井政和

今回の問題

今回の『JavaScript検定RPG』は『ループ処理編』ということで、JavaScript のループ処理についての問題が出題されました。

それでは以下、各問題とその解答を見ていきましょう。

問題1

for (var i = 0, s = ""; i < 5; i++) s += i; を実行したsの値は?

00000
01234
12345
55555

変数sの値は、ループのカウンタとして利用している変数iの値を、文字列として連結したものです。

変数iは「0, 1, 2, 3, 4」と変化していきます。この数値を文字列として連結した値は「01234」になります。

そのため答えは、2番目の「01234」になります。

// 参考コード
for (var i = 0, s = ""; i < 5; i++) s += i;
console.log(s); // 「01234」と出力

参考1:for - JavaScript | MDN

問題2

var s = "", i; for (i in {a: 9, c: 8}) s += i; を実行したsの値として適切なのは?

01
98
si
ac

for in 文では、オブジェクトのプロパティ名を順に得ます。変数sは、そのプロパティ名を文字列として連結したものです。

そのため答えは、4番目の「ac」になります。

// 参考コード
var s = "", i; for (i in {a: 9, c: 8}) s += i;
console.log(s); // 「ac」と出力

参考1:for...in - JavaScript | MDN

問題3

var s = ""; for (var i = 5; i--;) s += i; を実行したsの値は?

54321
43210
543210
43210-1-2-3...

このループ処理では、for 文の条件式が0になった場合に、false と見なされて、処理が停止します。

この条件式内の計算式「i--」は、右置きデクリメントです。右置きデクリメントでは、現在の値を返したあと、減算を行います。

変数iが5の場合は、5の値を返したあと、4になります。変数iが1の場合は、1の値を返したあと、0になります。重要なのは、for 文の条件式で利用する値は、この減算する前の値になることです。

そのため答えは、2番目の「43210」になります。

// 参考コード
var s = ""; for (var i = 5; i--;) s += i;
console.log(s); // 「43210」と出力

参考:for - JavaScript | MDN

問題4

var s = "", i, j; for (i = 5; i--;) for (j = 3; j--;) s += j; を実行したsの値は?

543210543210543210
32103210321032103210
432104321043210
210210210210210

内側のループ処理は、変数jが、2, 1, 0 の間処理をおこないます。外側のループ処理は5回実行されます。

そのため答えは、4番目の「210210210210210」になります。

// 参考コード
var s = "", i, j; for (i = 5; i--;) for (j = 3; j--;) s += j;
console.log(s); // 「210210210210210」と出力

参考:for - JavaScript | MDN

参考:制御フローとエラー処理 - JavaScript | MDN

CodeIQ運営事務局より

柳井さん、ありがとうございました!
現在、柳井さんの最新問題が出題中です。
ぜひ挑戦してみてくださいね!

  • 4
  • このエントリーをはてなブックマークに追加

■この記事を書いた人

avatar

クロノス・クラウン合同会社 柳井政和

クロノス・クラウン合同会社 代表。ゲームやアプリを作ったり、プログラムを 書いたり、文章を書いたり、絵を描いたり。『マンガでわかるJavaScript』、 CodeIQの問題を解説付きでまとめた『プログラマのためのコードパズル~ JavaScriptで挑むコードゴルフとアルゴリズム』執筆。 twitter: @ruten Web Site: http://crocro.com/

■関連記事

【謎解きプログラム】解像度に対応せよ!【dpi】解答と解説... 【謎解きプログラム】解像度に対応せよ!【dpi】 本問題は、「解像度に対応せよ!」というテーマで、プログラムにちなんだ謎を解くというものでした。 それでは以下、各問題とその解答を見ていきましょう。 問題のオープニング ある日、出社すると、あなたのPCのログイン画面に、謎の挑戦状が表示されてい...
【選択式問題】JavaScript検定RPG Array編 問題解説 #javascript... 今回の問題 今回の『JavaScript検定RPG』は『Array編』ということで、JavaScript のArrayについての問題が出題されました。 それでは以下、各問題とその解答を見ていきましょう。 問題1 配列を作る方法として適切でないのはどれ? new Array(0, 1, 2)...
【選択式問題】JavaScript検定RPG String編 問題解説 #javascript... 今回の問題 今回の『JavaScript検定RPG』は『String編』ということで、JavaScriptのStringについての問題が出題されました。 それでは以下、各問題とその解答を見ていきましょう。 問題1 文字列の特定の位置の文字を得る方法として、適切でないのはどれ? "ねこみみ"...
【選択式問題】JavaScript検定RPG 条件分岐編──問題解説 #javascript... 今回の問題 今回の『JavaScript検定RPG』は『条件分岐編』ということで、JavaScript の条件分岐についての問題が出題されました。 それでは以下、各問題とその解答を見ていきましょう。 問題1 ifのあとに書き、条件に一致しない場合の処理を行う構文は何? elf dwarf ...
大人気ダンジョンシリーズ!IQのダンジョンの解説+最短コード発表 #javascript... IQのダンジョン 今回の ダンジョンは、以下のような問題でした。 【問題】 標準入力から得られる値は「」のような文字列です。この文字列を、配列として解釈した配列の各要素には、36進数(0,1,2~,x,y,z)の数値を表す文字列が入っています。 この配列の各要素を、36進数の数字として解釈し...
【選択式問題】JavaScript検定RPG Object編 問題解説 #javascript... 今回の問題 今回の『JavaScript検定RPG』は『Object編』ということで、JavaScriptのObjectについての問題が出題されました。 それでは以下、各問題とその解答を見ていきましょう。 問題1 オブジェクトを作る方法として正しいのはどれ? newObject() obj...

今週のPickUPレポート

新着記事

週間ランキング

CodeIQとは

CodeIQ(コードアイキュー)とは、自分の実力を知りたいITエンジニア向けの、実務スキル評価サービスです。

CodeIQご利用にあたって
関連サイト
codeiq

リクルートグループサイトへ