HOME»基本情報技術者試験掲示板»平成31年春期 問11Javaについて
投稿する
平成31年春期 問11Javaについて [4795]
ぱせりさん(No.1)
問11 迷路と迷路上を移動する駒についての質問です。
プログラム5について、「駒を操作し、履歴リストを表示する。」とありました。
System.out.println(history);で履歴リストを表示していることは分かるのですが、駒を操作する処理が記述されていないように感じました。
piece.turnLeft()で左向いて、piece.turnRight()で右向いてるだけで、方向変えてるだけだと思いました。
while(!piece.~)で条件を満たさなくなったときに()の中身の処理を行っているのかな?と無理矢理理解していますが、この認識で合っているのでしょうか。
プログラム5について、「駒を操作し、履歴リストを表示する。」とありました。
System.out.println(history);で履歴リストを表示していることは分かるのですが、駒を操作する処理が記述されていないように感じました。
piece.turnLeft()で左向いて、piece.turnRight()で右向いてるだけで、方向変えてるだけだと思いました。
while(!piece.~)で条件を満たさなくなったときに()の中身の処理を行っているのかな?と無理矢理理解していますが、この認識で合っているのでしょうか。
2023.04.15 16:11
miyatanさん(No.2)
while(!ナントカ)はナントカがfalseである間、{}内のモノを繰り返し行います。
while(!piece.tryStepForward)に来た段階で
tryStepForward が試みられ、「隣接する前方の升が通路でなければ,前進せずにfalseを返」されるので{piece.turnRight()}を繰り返す。
「隣接する前方の升が通路なら1升前進し,前進した方角を履歴リストに追加してからtrueを返」されるのでwhileから抜ける。
かなと思います。
while(!piece.tryStepForward)に来た段階で
tryStepForward が試みられ、「隣接する前方の升が通路でなければ,前進せずにfalseを返」されるので{piece.turnRight()}を繰り返す。
「隣接する前方の升が通路なら1升前進し,前進した方角を履歴リストに追加してからtrueを返」されるのでwhileから抜ける。
かなと思います。
2023.04.15 18:40
ぱせりさん(No.3)
miyatanさん
非常に分かりやすい説明ありがとうございます!
頭を悩ませていたのですが、今の解説でスッキリしました!
非常に分かりやすい説明ありがとうございます!
頭を悩ませていたのですが、今の解説でスッキリしました!
2023.04.15 19:11