Java遊び

曲線折り紙の三谷純先生の教材を参考にChatGPTと相談してJavaを勉強した。インストール方法と実行方法を非技術者向けに素朴な世界観で説明し、コード例を載せる。
[https://mitani.cs.tsukuba.ac.jp/book_support/java/java1_material.pdf]

Java始め方(windows11)

Javaの環境構築は以下の手順でできる

Java使い方

Javaのコマンドラインからのコンパイルと実行は以下の手順でできる。

Javaコード例

FizzBuzz

public class Test {
    public static String fizzbuzz(int n){
        if (n % 15 == 0){
            return "FizzBuzz";
        }
        if (n % 3 == 0){
            return "Fizz";
        }
        if (n % 5 == 0){
            return "Buzz";
        }
        return String.valueOf(n);
    }

    public static void main(String[] args){
        for (int i=1; i <=100; i++){
            System.out.println(fizzbuzz(i));
        }
    }
}

階乗

public class Test {
    public static int factorial(int n){
        if (n <= 1){
            return 1;
        }
        return n * factorial(n - 1);
    }

    public static void main(String[] args){
        System.out.println(factorial(5));
    }
}

フィボナッチ

public class Test {
    public static int fibo(int n){
        if (n <= 1){
            return n;
        }
        return fibo(n-2) + fibo(n-1);
    }

    public static void main(String[] args){
        for (int i = 1;i <= 10; i++){
            System.out.println(fibo(i));
        }
    }
}

世界のナベアツ

public class Test {
    public static String nabeatsu(int n){
        if (n % 3 == 0) {
            return "honya";
        }
        if (String.valueOf(n).contains("3")){
            return "honya";
        }
        return (String.valueOf(n));
    }
    public static void main(String[] args){
        System.out.println("3の倍数と3がつく数の時だけあほになります");
        for (int i = 1;i <= 100; i++){
            System.out.println(nabeatsu(i));
        }
    }
}

Javaとは

90年代に誕生したC系の改良言語であり、マルチプラットフォームが特徴。Minecraft等に使われている。
70年代のC、80年代のC++よりは新しく、2000年代のC#よりは古い。CやC++よりはシンプルで整理されているが、C#よりは複雑な書き方をする場合がある。またJavaScriptはJava人気にあやかって命名された全然関係ない別の言語である。

以下にリンクを載せたロジバニストのskytomoさんのツイートのツリーの史観は整理されていてわかりやすい。
[https://x.com/skytomo221/status/1627607067203862528:embed]
[https://x.com/skytomo221/status/1627607590397161472:embed]
[https://x.com/skytomo221/status/1627607672202883072:embed]
[https://x.com/skytomo221/status/1627607847772225537:embed]
[https://x.com/skytomo221/status/1627609915778031616:embed]