zomiの「なんでもやってみます!」

プログラミングメモ多め。Java学習中。

Javaで何か作りたい①1種類だけ販売してくれる自動販売機

1.はじめに

こんにちは。プログラマ2年目のzomi(ぞみ)です。

今日は現在学習中のJavaを使い、簡単なものを作りたいと思います。

2.環境

Windows 11 Pro 22H2

3.学習中の教材

以下の「スッキリわかるJava」を使用しています。

スッキリわかるJava入門 第3版 (スッキリわかる入門シリーズ) | 中山清喬, 国本大悟, 株式会社フレアリンク |本 | 通販 | Amazon

4.Javaの開発3ステップ

ソースコードの作成と編集

コンパイルによる変換

③完成プログラムの実行

「スッキリわかる~」を学習すると「dokojava」という機能を使用することができます。

とてもお手軽なのですが、実際に自分でも3ステップを体感してみたいと思い環境構築をやってみます。

①c:に「java」フォルダを作成→Main.javaファイルを追加します。

public class Main {
    public static void main(String[] args) {
        System.out.println("Hello world");
    }
}

コンパイルを行う

コンパイルとは:プログラム言語をコンピュータが理解できる言語に変換すること

C:\java>javac Main.java

③完成プログラムの実行

クラスファイルがあることを確認してから実行します。

C:\java>dir
 ドライブ C のボリューム ラベルは Windows です
 ボリューム シリアル番号は **** です

 C:\java のディレクトリ

2023/06/17  16:00    <DIR>          .
2023/06/17  16:00               413 Main.class

C:\java>java Main
Hello world

5.今回作成したもの

160円のペットボトルしか販売していない自動販売機です。とにかく作ってみることを意識!

①数字を入力する

②160以上の場合:お釣りの金額を表示して「お買い上げありがとうございました!」で終了(1)

 160未満の場合:160以上を入力するまで「お金が足りません。お金を入れなおしてください。」を繰り返す→160以上を入力したら(1)となるので終了

(1)フローチャート

(2)コード

public class Main {
    public static void main(String[] args) {
        System.out.println("お金を投入してください。");
        // お金を入れる処理
        int money = new java.util.Scanner(System.in).nextInt();
        while ( money < 160 ) {
            System.out.println("お金が足りません。");
            System.out.println("お金を入れなおしてください。");
            money = new java.util.Scanner(System.in).nextInt();
        }

        // お釣りの計算の処理
        int change = money - 160;
        // お釣りを表示する
        System.out.println("投入金額は" + money + "円なので、お釣りは" + change + "円です。");
        System.out.println("お買い上げありがとうございました!");
    }
}

今回は学習内容のうち、3つの要素を入れてみました。

  • 繰り返し
  • キーボードから1つの整数を受け付ける
  • 計算

(3)エラー

以下のエラーが出ました。原因は文字コードの相違です。(ファイル形式をUTF-8で保存しています。)

コンパイルの際に「-encoding UTF-8」をつけることで解消しました。

Main.java:15: エラー: この文字(0x81)は、エンコーディングwindows-31jにマップできません
        // System.out.println("縺願イキ縺?荳翫£縺ゅj縺後→縺?縺斐*縺?縺セ縺励◆?シ?");
                                                            ^
エラー18個

C:\java>javac -encoding UTF-8 Main.java

6.参考

eng-entrance.com

www.ntt.com

qiita.com

qiita.com

qiita.com

7.おわりに

形にするのは楽しいですね!いろいろなものを作り アウトプットしていく習慣を身に着けたいと思います。 学習過程が進んだ際にリファクタリングもしていけたらと思います。 何かありましたら、ご意見やご感想をいただけると幸いです。

読んでいただき、ありがとうございました。