結論:とても難しい
変数を代入するだけでも自分の脳みそのメモリはガリガリ削られているのに、さらに仕組みを考えたり綺麗にしたり、新しい箱を用意してそれが入れ替わりながらシャキシャキ動くプログラムを組み立てるなんて脳みそが倍々チャンスで大変ヨクデキマシタにでもならない限り無理。=無理。[][] = 配列
これは二つあるため二次元配列となる。
※[]を増やすことで三次元、四次元と配列を複雑化して凄いことも出来るが、常人では頭がアナザーディメンジョン(無量空処?)を食らうので非推奨だと教わりました。
サンプルコード
public class Q4 {
public static void main(String[] args) {
int okCount = 0; // 正解数
// クイズ・なぞなぞ内容(内側の配列は最初の要素が問題内容、次の要素が答えの情報)
String[][] quizArray = {
{"ぼうしの中にはいっている動物は?", "うし"},
{"9匹のトラが乗っている乗り物は?", "とらっく"},
{"お茶はお茶でも、子供がよろこぶおちゃは?", "おもちゃ"},
{"食べると安心するケーキはなーんだ?", "ほっとけーき"},
{"どんなに頼んでも、売ってくれない人のお仕事は?", "うらないし"}
// {"お父さんがきらいな食べ物なーんだ?", "ぱぱいや"}
};
System.out.println("今から、クイズ・なぞなぞを" + quizArray.length + "問出題します。");
System.out.println("答えは全て\"ひらがな\"で答えてください。");
for (int i = 0; i < quizArray.length; i++) {
// クイズを出題する
System.out.println("[第" + (i + 1) + "問]");
System.out.println(quizArray[i][0]);
// プレイヤーに回答させる
System.out.print("答えをひらがなで入力>>");
String answer = new java.util.Scanner(System.in).nextLine();
// 回答と答えがあっているかのチェック
if (answer.equals(quizArray[i][1])) {
System.out.println("正解です!");
okCount++;
} else {
System.out.println("残念。不正解です");
}
}
System.out.println("終了!!");
System.out.println("結果 正解:" + okCount + " 不正解:" + (quizArray.length - okCount));
// 正解率に応じて結果メッセージを変化
double okPercentage = okCount / (double)quizArray.length;
if (okPercentage >= 0.8) {
System.out.println("すばらしい!クイズ博士ですね!!");
} else if (okPercentage >= 0.6) {
System.out.println("優秀ですね!");
} else if (okPercentage >= 0.4) {
System.out.println("普通の人です");
} else if (okPercentage >= 0.2) {
System.out.println("次は、頑張りましょう!");
} else {
System.out.println("クイズは苦手ですか?");
}
}
修正に強いプログラム
上記のサンプルコードは、例えば問題が増えた際に二次元配列の{}内に問と解を書けばもう修正完了となるので利便性が良く、自分以外が修正を行うことになってもわかりやすいプログラムだと感じました。 凄すぎる。今の自分だと、一つずつべた書きしてコメントアウトを増やしたりしてコードが3桁を超える超大作(駄作)になりそうだと思った。
フォウフォウループdeイフエルス。
ホワホワホワイルドゥホワル。
数字は=、文字.equals。
昔々にTVで見たCo.慶応って人はアウトプットが上手すぎる凄い頭が良いんだなって思った12月(KONMAI