[ Java Silver 対策 ] 演習問題7(while文 do-while文)

目次

while文に関する問題1

コンソールに0~4までの数字を表示したいので、選択肢の中から、条件式に当てはまる条件を選んでください。

public class Main{
  public static void main(String[] args) {
    int a = 11;
    int b = 0;
    while ( 条件式 ) {
      if (5 < a) {
        System.out.println(b);
      }
      a--;
      b++;
    }
  }
}

選択肢

  • A) 5 < b
  • B) a < 5
  • C) true
  • D) b < 5
  • E) false
  • F) 5 < a
正解は、、、、

D) b < 5

 bが5より小さいときに繰り返すD)が入ります。

 ちなみに選択肢を順に実行していくと

A)B)は、なにも表示されない。

C)無限ループになります。

E) コンパイルエラー

F) 0~5までの数字が表示されます。

do-while文に関する問題

 コンソールに0~4までの数字を表示したいのですが、次のプログラムの4行目と6行目にエラーが発生しています。

 どのように直せば正しく表示される組み合わせになるのか、選択肢の中から選んでください。

public class Main{
  public static void main(String[] args){
    int a = 0;
    while( a < 5 ){
      System.out.println(a++);
    }do;
  }
}

選択肢

  • A)4行目:do 6行目:while ( a < 5 );
  • B)4行目:do ( 5 < a ) 6行目:while;
  • C)4行目:do 6行目:while ( 5 < a );
  • D)4行目:do ( a < 5 ) 6行目:while;
正解は、、、

A)4行目:do 6行目:while ( a < 5 )

 do-while分では、最初に「do」を書き込み、その後に繰り返し処理する内容を書き込みます。そのあと、繰り返しの条件を書き込む「while」を書き込みます。設問では、「do」から書き始めているのでエラーになります。

ほかの選択肢を実行した場合、、、

  • B)4行目:do ( 5 < a ) 6行目:while; →コンパイルエラー
  • C)4行目:do 6行目:while ( 5 < a ); →0を表示して止まります。
  • D)4行目:do ( a < 5 ) 6行目:while; →コンパイルエラー

となります。

while文とdo-while文の複合問題

次のプログラムをコンパイル、実行したときの結果として正しいものはどれでしょうか?

public class Main{
  public static void main(String[] args){
   int a = 0;
   while (a < 5)
     do
       a++;
       System.out.print(a);
     while(true);
  }
}

選択肢

  • A)「01234」と表示される。
  • B)コンパイルエラーになる。
  • C)無限ループになる。
  • D)実行時に例外がスローされる。
  • E)何も表示されない。
正解は、、、、

B)コンパイルエラーになる。

 この設問では、「{}」が省略されています。省略された場合は次の1行が繰り返しの対象となり、それ以降は含まれません。ここでの1行とは「;(セミコロン)」までとなるので、1行に2つ続けて書いても実行はされません。

 このコードがコンパイルエラーにならないように書き直した場合は、無限ループが発生し、書き直した上で、ネストされた時の繰り返し条件を「true」から「 a < 5 」に書き換えると「01234」と表示されるようになります。

 while文やdo-while文の分岐の問題は、「{}」の省略など、迷いが出やすくなるので、省略された問題が出題された場合、どこに「{}」が入るのか、そして処理の対象がどこまでになるのか復習しておきましょう。

(Visited 115 times, 1 visits today)
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

株式会社NEUGATEは、都内で企業研修や職業訓練を運営している会社です。主に、IT系の教育事業に力を入れています。
この記事は、株式会社NEUGATEの教育事業部が執筆をしています。

企業ホームページ:https://neugate.co.jp/

コメント

コメントする

目次