在Java中玩剪刀石头布

[Q&A] Java「変数strAは初期化されていない可能性があります」エラーの原因 – Qiitaの修正

打开JDK 安装

apt install -y openjdk-14-jdk

源代码

import java.util.Random;

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

        Random rand = new Random(Integer.valueOf(args[0]));
        int comA = rand.nextInt(3);
        int comB = rand.nextInt(3);
        String strA, strB;
        strA = "";
        strB = "";
        switch(comA){
            case 0 :
                strA = "グー";
                break;

            case 1 :
                strA = "チョキ";
                break;

            case 2 :
                strA = "パー";
                break;

            default:
                strA = "";
                break;
        }
        switch(comB){
            case 0 :
                strB = "グー";
                break;
            case 1 :
                strB = "チョキ";
                break;
            case 2 :
                strB = "パー";
                break;

            default:
                strB = "";
                break;
        }
        if(comA == comB){
            System.out.println(
                    "コンピュータA:" + strA
                    );
            System.out.println(
                    "コンピュータB:" + strB
                    );
            System.out.println(
                    "あいこ"
                    );
        }
        else if(((comA == 0) && (comB == 1)) || ((comA == 1) && (comB == 2)) || ((comA == 2) && (comB == 0))){
            System.out.println(
                    "コンピュータA:" + strA
                    );
            System.out.println(
                    "コンピュータB:" + strB
                    );
            System.out.println(
                    "コンピュータAの勝ち"
                    );
        }
        else{
            System.out.println(
                    "コンピュータA:" + strA
                    );
            System.out.println(
                    "コンピュータB:" + strB
                    );
            System.out.println(
                    "コンピュータAの負け"
                    );
        }
    }
}
# コンパイル
javac Janken.java
$ java Janken.java 
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: Index 0 out of bounds for length 0
    at Janken.main(Janken.java:7)

$ java Janken.java 0
コンピュータA:グー
コンピュータB:チョキ
コンピュータAの勝ち

$ java Janken.java 1
コンピュータA:グー
コンピュータB:チョキ
コンピュータAの勝ち

$ java Janken.java 2
コンピュータA:チョキ
コンピュータB:グー
コンピュータAの負け
广告
将在 10 秒后关闭
bannerAds