また,繰り返しゲームをプレイするプログラムを作るか,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);
}
}
これは,キーボード(標準入力)から数を読み込んでいって,負の数が出たら
抜けて,それまでの和を表示するプログラムである.