LoginSignup
2
0

More than 3 years have passed since last update.

Javaの勉強 ScannerとかMapとか使ってみる

Posted at

職業訓練校に通い始めてHTML&CSS,JavaをProgateなどで学習していたらQiitaの活用がすっかり、、、
と、いうわけで
Javaの勉強のために購入した「スッキリわかるJava入門 第2版」の練習問題を本来の回答と違う方法で記述してみました


練習2-3
以下のプログラムを作成してください。

①画面に「ようこそ占いの館へ」と表示します。
②画面に「あなたの名前を入力してください」と表示します。
③キーボードから1行の文字入力を受け付け、String型の変数nameに格納します。
④画面に「あなたの年齢を入力してください」と表示します。
⑤キーボードから1行の文字入力を受け付け、String型の変数ageStringに格納します
⑥変数ageStringの内容をint型に変換し、int型の変数ageに代入します。
⑦0から3までの乱数を生成し、int型の変数fortuneに代入します。
⑧fortuneの数値をインクリメント演算子で1増やし、1から4の乱数にします。
⑨画面に「占いの結果が出ました!」と表示します
⑩画面に「(年齢)歳の(名前)さん、あなたの運記番号は(乱数)です」と表示します。
 その際に(年齢)には変数ageを、(名前)には変数nameを、そして(乱数)に⑧で作った数字を表示させます。
 画面に「1:大吉 2:中吉 3:吉 4:凶」と表示します。

import java.util.*;

public class practice {

    public static void main(String[] args) {
        Scanner stdInput = new Scanner(System.in);
        Random random = new Random();
        Map<Integer, String> map = new HashMap<Integer, String>();

        map.put(0, "大吉");
        map.put(1, "中吉");
        map.put(2, "吉");
        map.put(3, "凶");


        System.out.println("ようこそ占いの館へ!");
        System.out.print("あなたの名前を入力してください: ");
        String name = stdInput.nextLine();
        System.out.print("あなたの年齢を入力してください: ");
        String ageString = stdInput.nextLine();

        int age = Integer.parseInt(ageString);
        int fortune = random.nextInt(4);

        System.out.println("\n占いの結果が出ました!");
        System.out.println(age + "歳の" + name + "さん、あなたの運勢は" + map.get(fortune) + "です");
    }
}

実行結果です

結果

ようこそ占いの館へ
あなたの名前を入力してください はたでめお
あなたの年齢を入力してください 40

占いの結果が出ました
40歳のはたでめおさんあなたの運勢は中吉です

使用した本

スッキリわかるJava入門 第2版 (スッキリシリーズ)

まとめ

色々こうしろと言われてたのですが無視してやった結果がこれです。。。
Pythonの辞書にあたるものを使いたかったのですが、調べて最初に出てきたのがMapだったのでそれを使用しました
javaはデータ型を色んなところで宣言するのがなかなか煩わしいです。。。
分かり易くていいんですが

お気づきの点がありましたら遠慮なくご指摘お願いいたします。

2
0
6

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0