また,繰り返しゲームをプレイするプログラムを作るか,1回だけゲームをプ レイするプログラムにするかが問題になる.プログラムの作成しやすさを考え て,1回だけゲームをプレイするプログラムにしてみよう.
ktanaka@ux019> java Kadai1021 Guess a number 入力を促す1行(メッセージは任意を表示) 512 数字 HIGH メッセージは「HIGH」か「LOW」 256 LOW 384 HIGH 320 HIGH 288 LOW 304 HIGH 296 LOW 300 9 回答に要した回数を表示
プログラム全体の流れは以下のようになるはずである.
// Randomクラスを使うために必要 import java.util.*;とした上で,
// 1-1000までの乱数を作成 int secret=(new Random()).nextInt(999)+1;のようにRandom クラスを使う.なお,一つのプログラムで何度も乱数を使う時は,
// 乱数の元となるオブジェクトを作成 Random r=new Random(); // 1-1000までの乱数を作成 int secret1=r.nextInt(999)+1; // 1-100までの乱数を作成 int secret2=r.nextInt(99)+1;のようにすると良い.
/home/ktanaka/bin/report1021 1を実行する.プログラムのコンパイル実行をチェックした上で,プログラムを コピーし,実行結果を記録する.なお,このプログラムを通っても正しくない プログラムはありうる.その場合は減点されることもある.
import java.io.*; // 入力に関するクラスを使う時は必要 class SumAll{ // throws IOException で内部で入出力エラーが起きる可能性があることを示す public static void main(String[] args) throws IOException{ // 入力をするためには,System.inからBufferedReaderを作らなくてはいけない BufferedReader d=new BufferedReader(new InputStreamReader(System.in)); int sum=0; // for文の初期化,終了条件,繰り返し部分を省略して書くこともできる // この場合は, break によって明示的に抜けないと無限の繰り返し // になる for(;;){ // 1行読み込んで整数に変換する int num=Integer.parseInt(d.readLine()); // 入力した数が負または0の時は抜ける。 if(num<=0) break; sum=sum+num; } System.out.println(sum); } }これは,キーボード(標準入力)から数を読み込んでいって,負の数が出たら 抜けて,それまでの和を表示するプログラムである.