★Daigo's Report#3★
Report#3(Java)
○Javaアプリケーションによるオリジナル問題作成と解答例
●多くのJava制御文を用いてオリジナルのJavaアプリケーションによる初級問題
を作成し,模範回答例を示せ。
【プログラムと実行結果】
自主課題
コンピュータが生成する1から10までの乱数を予想して当てるプログラムを作成せよ。
【プログラム】
//★運試しゲーム★1〜10までの数字を予想しよう。
import java.io.*;
public class repo3 {
public static void main(String[] args) throws IOException {
//標準入力の準備
BufferedReader buf = new BufferedReader(new
InputStreamReader(System.in));
int next; //コンピュータの次の数値
int guess; //ユーザの予想
while(true){ //
next = (int)(Math.random()*10 +1); //乱数の範囲を1〜10までに制限
System.out.print("Your guess : ");
guess = Integer.parseInt(buf.readLine()); //入力を標準入力より取得
System.out.println("correct number: " + next); //乱数の表示
if(next != guess){
System.out.println("guess again"); //はずれ
}else{
System.out.println("Bingo!!"); //あたり
break; //あたりのときbreakする
}
}//whileに戻る
} //mainの終り
} //class repo3 の終り
|
【実行結果】
[nw0364:~/sites/java/Repo_3] j03064% java repo3
guess again
Your guess : 6
correct number: 10
guess again
Your guess : 5
correct number: 2
guess again
Your guess : 3
correct number: 4
guess again
Your guess : 8
correct number: 4
guess again
Your guess : 6
correct number: 6
Bingo!!
[nw0364:~/sites/java/Repo_3] j03064%
|
【考察】
●制御文について●
Javaの制御文は、ほとんどC言語と似ていました。そこで、もう一度復讐を兼ねて制御文を調べてみました。
-主な制御文-
分岐
*if文:2方向分岐
*switch文:多方向分岐
反復
*for文:指定回数反復
*while文:前判断型不定回数反復
*do-while文:後判断型不定回数反復
脱出継続
*break文:制御脱出
*continue文:スキップ
その他の制御文
*return文:現在のメソッドを終了し、呼び出し元へ制御を戻す
*synchronized文:コードブロックの同期指定
*throw文:自分で例外をスローする。例外オブジェクトの生成
*try/catch/finally文:例外制御
*assert文:デバッグ用、デフォルトでは無効
●if文
条件式の結果が真のときにだけ、statementを実行する。
条件式で用いられるのは、二つの値を比較する関係演算子を使う。
●else文
if文に対してelseステートメントを追加することによって、より柔軟な分岐が可能になる。
elseステートメントは直前のifが偽の場合に指定ステートメントを実行する。
直前のifが真であればelseステートメントは実行さない。
つまり、ifとelseを用いて完全な二者択一分岐を簡単に作ることができる。
●for文
for文は単一のステートメントを指定回数だけ繰り返す
for ( 初期設定(省略可能) ; 条件式(省略した場合は真を返す) ; 変化式(省略可能)) 繰り返し処理;
|
・まず、初期設定で変数の初期化を行う。
・ここで初期化された変数は、繰り返された回数を制御するために、つまりカウンターとして使われる。
・初期設定はループ開始時に1度だけ実行される。
・条件式ではif文同様に関係演算子を用いた式を評価する。
・変化式でどのように変化していくのかを記述する。
●while文
・書式はifと同じで、式を評価して真の間ループします
・whileはforのようにexprを省略できない。
・無限ループ作成には、通常trueを使う。
・無限ループを作成した場合は、やはりカスタムで抜け出す道を作る必要がある。
●do文
・do文は、forやwhileと違って、ステートメントを実行してから評価する。
do { statement }while (条件式); |
・statement - 条件式がtrue(真)の間実行するステートメントを指定する。
・条件式 - 必ず指定します。評価する条件式を指定します
●switch文
・switchは複数選択ステートメントと呼ばれ,一つの対象に対して複数の分岐が可能
・switchは等しければ実行するが比較はできない。
・同一の値を持つcaseを二つ以上作ることはできない。
・caseがもつ値に等しければ、そこからswitchの最後まで実行されてしまう。そのため、一つのcaseの節には基本的に
breakをつける。
・switchには浮動小数点は指定できない。
【参考文献・URL】
・Java入門
http://www5c.biglobe.ne.jp/~ecb/java/java00.html
・JAVA言語入門
http://black.sakura.ne.jp/~third/programming/java/java.html