基本情報技術者試験 (FE) 科目 B — 練習問題 第 6 問 / 全 20 問 · 基礎
回数指定の while
関連レッスン: 繰り返し (while) の書き方と無限ループの避け方
「*」をちょうど 3 回出力したい。空欄 a に入れる条件として適切なものはどれか。
整数型: 回数 ← 0
while ( [ a ] )
print("*")
回数 ← 回数 + 1
endwhile解説
正解: ア 回数 < 3
カウンタを 0 から始めた場合、繰り返す回数は「< 繰り返したい回数」で表します。回数 が 0、1、2 のときに中身が実行され、3 になった時点で条件が偽になるので、ちょうど 3 回です。
回数 ≦ 3 にすると 0、1、2、3 の 4 回実行されます。これが典型的な off-by-one (1 回多い / 少ない) のバグです。1 始まりのカウンタなら 回数 ≦ 3 が正しくなるので、「初期値がいくつか」とセットで覚えてください。
回数 = 3 は最初の判定で 0 = 3 が偽になるため 1 回も実行されず、回数 > 3 も同じく 1 回も実行されません。条件が最初から偽なら while の中身はまったく動かない、というのも重要な性質です。
0 始まりなら < n、1 始まりなら ≦ n。初期値を見ずに条件だけ選ぶと 1 回ずれる。
演習量を増やしたい方へ(おすすめ書籍)
擬似言語の記法の読み方から、トレースして答えを出すまでを一冊で通せる科目B特化本。手を動かして追う練習量を確保したいときの定番。
科目Bの出題パターンを網羅的に演習できる対策書。構文を理解した後、解法の型を身につける段階で効く。
科目Bの出題範囲を絞り込んだ薄型の対策書。頻出アルゴリズムと情報セキュリティを短期間で一周したいときに。
本セクションはAmazonアソシエイトのリンクを含みます。
プログラムの読み方でつまずいたら。
たいてっくが、アルゴリズムの追い方から SQL・データベース設計まで、1対1で学習をサポートします。「コードを目で追っても何をしているか分からない」段階からで大丈夫です。まずは無料相談から。
「教え方も上手で、お人柄も良いメンターです。DB周りの知識はもちろん、何より、しっかり教えてあげようという姿勢がとてもありがたかったです。データベース、SQLの学習を考えている方にはおススメです。」
— H 様(DB・SQL コース受講)「体系的に知識を教えてくださり、実際の業務でも大変役立っております。特に短い時間で効率よく知識の習得や、練習をできているのは期待以上でした。」
— M 様(DB・SQL コース受講)「大変充実したコンテンツでわかりやすいご説明をありがとうございました。基本的な質問にも丁寧にご説明いただき、また業務のご相談にも乗って頂き大変有意義な時間でした。」
— K 様(DB・SQL コース受講)