英単語が学習できるコンソールアプリをJavaで作成してみよう。
10種類の動物が日本語が表示されるので英単語入力すると正解が表示される。
10問終わると結果が出力される。
実行例
ぞう>>elephant 正解! しろくま>>sirokuma 不正解!しろくまの英単語はpolarbear くじら>>whale 正解! ペンギン>>penguin 正解! カンガルー>>kangaroo 正解! ライオン>>lion 正解! ひと>>human 正解! いぬ>>dog 正解! ねこ>>cat 正解! あり>>ant 正解! 全10問中9問正解
解答例
import java.util.*;
public class AnimalApp{
public static void main(String[] args){
Scanner sc=new Scanner(System.in);
Animal[] animals={
new Animal("ぞう","elephant"),
new Animal("しろくま","polarbear"),
new Animal("くじら","whale"),
new Animal("ペンギン","penguin"),
new Animal("カンガルー","kangaroo"),
new Animal("ライオン","lion"),
new Animal("ひと","human"),
new Animal("いぬ","dog"),
new Animal("ねこ","cat"),
new Animal("あり","ant"),
};
int correct=0;
for(Animal a : animals){
System.out.print(a.ja +">>");
String ans=sc.next();
if (a.check(ans)){
correct++;
System.out.println("正解!");
}else{
System.out.println("不正解!"+a.ja+"の英単語は"+a.en);
}
}
System.out.println("全"+animals.length+"問中"+correct+"問正解");
}
}
class Animal{
String ja;
String en;
Animal(String ja,String en){
this.ja=ja;
this.en=en;
}
boolean check(String ans){
return ans.equalsIgnoreCase(this.en);
}
}
ポイント
○こういった同一形式のものが10種類出てくる処理などがあった場合。Javaでコーディングしている場合はクラスを作るのが基本だ。今回は日本語と英語という2つのフィールドを持つクラスを作成した。クラスさえ作ってしまえば、あとはそのインスタンスを配列に入れてループさせれば問題は解決だ。
○equalsIgnoreCase
今回は英単語入力の際のElephant,elephant,ELEPHANTなどの表記の揺れをequalsIgnoreCaseを使って比較することで大文字小文字を区別せずに比較することができる。
コメント