รบกวนดูโค้ดของเกมนี้หน่อยค่ะTT

กระทู้คำถาม
Source code
import java.util.Scanner;

public class BasicMathGame {

    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        double num1, num2, ans, result = 0;
        boolean correct = true;
        char operator[] = {'+', '-', '*', '/'};
        char op;
        int id, score = 0;
        while (correct) {
            num1 = (int) (1 + (Math.random() * 12));
            num2 = (int) (1 + (Math.random() * 12));
            id = (int) (Math.random() * 4);
            op = operator[id];
            System.out.println(num1 + " " + op + " " + num2);
            System.out.print("Enter answer: ");
            ans = scan.nextDouble();
            switch (op) {
                case '+':
                    result = num1 + num2;
                    break;
                case '-':
                    result = num1 - num2;
                    break;
                case '*':
                    result = num1 * num2;
                    break;
                case '/':
                    result = num1 / num2;
                    break;
            }
            if (result == ans) {
                correct = true;
                System.out.println("Correct! Good job.");
                score += 1;
            } else {
                correct = false;
                System.out.println("Incorrect Game Over.");
            }
        }
        System.out.println("Score : " + score);
    }
}
----------------------------------------------------------------------------
char operator[] = {'+', '-', '*', '/'};
char op;
int id, score = 0;
while (correct) { num1 = (int) (1 (Math.random() * 12));
num2 = (int) (1 + (Math.random() * 12));
id = (int) (Math.random() * 4);
op = operator[id];


คือสงสัยการทำงานที่เป็นส่วนนี้อะค่ะ
ทำไมต้องมีตัวแปร op >>>char op
กับ int id ด้วยอะคะ
id = (int) (Math.random() * 4); >>>ทำไมถึงต้อง*4
op = operator[id];>>>ที่มาของบรรทัดนี้

คือดูโปรแกรมแล้วสงสัยค่ะ สงสัยแต่ส่วนนี้จริงๆ ยิ่งดูแล้วยิ่งงง

ปล.เราเพิ่งเริ่มเรียนภาษาจาวาค่ะ
แสดงความคิดเห็น
โปรดศึกษาและยอมรับนโยบายข้อมูลส่วนบุคคลก่อนเริ่มใช้งาน อ่านเพิ่มเติมได้ที่นี่