見出し画像

Java訓練#4(reader•random)

今日は長文のコードをひたすら写経したので疲れました。
だけどプログラミングがちゃんと動いた時は凄い達成感がありとても楽しいです。

普通の文字入力でさえ遅い僕が英語や記号を打つのはかなり時間がかかります。「キーボードで記号の位置はどこかな?」と探しながらやってます。しかし慣れるにはひたすらやるしかないです。

今日の授業内容

まず %  の記号について学びました。

%  の意味は計算の余りを求めるコードになります。
例 : 15÷2 をした時に余りは 1 になると思います。
       この 1 だけを表示します。

例:

System.out.println(15 % 2);

コマンドプロンプトで実行すると

1

と表示されます。

入力待ちの状態を作るコード

これはコマンドプロンプトですぐ答えを出すのではなくて何か入力されるのを待つコードです。

入力待ちの状態を作るコードで大事な所だけを紹介します。

import java.io.*;

①↑このコードで以下に書く機能を読み込む為のコード
これをclass 宣言の上に書きます。

BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));

②↑このコードは、コマンドプロンプトで入力待ちをさせる為の下準備です。

try {

③↑ここから処理したいプログラムを書いていきます

reader.readLine();

④↑このコードでコマンドプロンプトで入力待ちを作ります。このコードの前に 「データ型 変数」が入ります。

String line = reader.readLine();

というようになります。

この reader.readLine(); はコマンドプロンプトで入力待ちの状態を作り1行分の文字列を入力させる事ができます。※reader は②で下準備したコードの変数です。

コマンドプロンプトで入力したものは全部文字列として認識されます、しかし数字を入力したい場合はreadLineメソッドの下に以下のコードを記述します。

String line = reader.readLine();

//数字として変換します。
int x = Integer.parseInt(line);

⑤↑この  Integer.parseInt(); のコードで文字列を数字に変えて int型の 変数(x)に代します。

} catch (IOException e) {
    System.out.println(e);
} catch (NumberFormatException e) {
    System.out.println(“エラー”);
}

⑥↑ try{ の中に書いたプログラムを最初の } catch で締めます。そして、コマンドプロンプトで入力した物が正しくなかった時の処理が上のコードです。「エラー」と書いてある所は任意で決めれます。

乱数について

ランダムな数字を表示させるコードについて解説します。

Math.random() というメソッドがあります。分解するとMathクラスのrandomメソッドになります。
この乱数を表示させるコードは以下になります。

型 変数 = (Math.random () * 数字) + 数字;

このままだと「小数点」の数字(double型)になります。これを整数にする場合はMath.random()の前に int 
を書きます。

int 変数 = (int)(Math.random() * 9)  + 1;

のように書きます。(int)のように書くとdouble型から int型に変換する事ができます。データ型を変換する事をキャストといいます。
また、このコードでは1〜9の整数をランダムで変数に代入します。コードに書いてある 1 は開始位置で 9 は範囲になります。
1〜9の間でランダムな数字を使うという事です。

コード内にメモする

長いコードを書くとどれが何をしてるコードなのか分からなくなってしまいます。そんな時にコードの中にメモをして分かりやすくしないといけません。
また、コードを実行した時にメモはメモとしてパソコンに認識してもらわないといけません。

そんな時は次の記号を書きます。

//    メモを1行のみ書く時に使います。

/*    メモを複数行書く時に使います。最後にも同じ記号で閉じます。※アスタリスクとスラッシュの位置に注意
*/

// これはメモです。

/* これはメモです
*  複数行書く時はこの様に
*  米印でわかりやすくします
*/

他にもまだあるみたいですが習ったのはここまでです。
最後に練習問題を用意しました。よかったら挑戦してみて下さい。

以上訓練4日目で習った事をザックリとまとめました。
だんだんと複雑なコードも出てきてるので授業に置いてかれないように頑張ります。

※今回解説した事でもしかしたら解釈が違う事や説明が足りないものもあると思います。だけどまだ4日目なので許してくださいw

公共職業訓練を受講する為に必要な事を下の記事で書いてます。
良かったらご覧下さい↓↓↓


それでは練習問題です。

問題①
名前と年齢を問いかけてコマンドプロンプトで入力させるプログラムを作成して下さい。

実行結果

あなたの名前は?
あなたの年齢は?
私の名前は○○です、年齢は○○です。

問題②
コマンドプロンプトで入力した整数とランダムな整数を計算させて答えを出すプログラムを作成して下さい。※加減乗除はなんでも可

実行結果

入力した数とランダムな数を計算させます
数字を入力して下さい
入力した数○○ ✖️ランダムな数○○答えは○○です


問題は出来ましたでしょうか?

それでは解答します。
コードの書き方などは人によって違いがでるかもしれませんが実行結果が同じ様なら大丈夫です。

解答
問題①
reader.readLineメソッドを2つ使います。
名前を入力させる時は String 型を使い、年齢を入力させる時は Integer.parseInt でint 型に変換させます。

import java.io.*;

public class NameAge {
  public static void main(String[] args) {

     BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
     try {
          System.out.println(“名前を入力して下さい”);
          String name = reader.readLine();

          System.out.println(“年齢を入力して下さい”);
          String line = reader.readLine();
          int age = Integer.parseInt(line);
          System.out.println(“あなたの名前は” + name + “です。” + “年齢は” + age + “です”);
         
         } catch (IOException e) {
             System.out.println(e);
         } catch (NumberFormatException e) {
             System.out.println(“入力エラー”);
         }
  }
}

問題②
reader.readLineメソッドと Math.randomメソッドを使います。それぞれ変数に格納します。そしてこの変数同士を計算させた物を新しい変数に代入します。

import java.io.*;

public class Count {
  public static void main(String[] args) {

     BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
     try {
          System.out.println(“入力した数とランダムな数を計算させます”);
          String line = reader.readLine();
          int num = Integer.parseInt(line);

          int ran = (int)(Math.random() * 9)  + 1;
          
          int ans = (num * ran);
          System.out.println(“入力した数字” + num + “×” + “ランダムな数字” + ran);
          System.out.println(“答えは” + ans + “です”);

         } catch (IOException e) {
             System.out.println(e);
         } catch (NumberFormatException e) {
             System.out.println(“入力エラー”);
         }
  }
}

最後まで読んで頂きありがとうございました。

少しでも勉強になった、役に立ったと思ったら「 サポート」 で貴方のお気持ちを頂けると嬉しいです。
今後の励みにもなります。是非よろしくお願いします。

この記事が気に入ったらサポートをしてみませんか?