2024.9.27

宫崎英藻發表於2024-09-28

一。
1.java的基本執行單位是類
2.類由成員變數/Field域,方法,構造器,程式碼塊和內部類組成
3.變數的型別相互之間可以轉換
4.String是引用型別,不是資料型別
5.在類中,用static宣告的成員變數為靜態成員變數,也成為類變數。
二。
動手動腦 一
第一個false是因為s和t是不相等的列舉例項
第二個false表示s不是一個基本資料型別,列舉是引用型別
true表示透過valueOf方法從字串"SMALL"獲取的列舉例項u與直接透過列舉常量獲取的例項s是相等的
最後進行了列舉值的遍歷
三。
動手實驗
輸出為
0.05 + 0.01 = 0.060000000000000005
1.0 - 0.42 = 0.5800000000000001
4.015 * 100 = 401.49999999999994
123.3 / 100 = 1.2329999999999999
不意外,使用double型別的數值進行計算,其結果是不準確的。
四。
為什麼double型別的數值進行運算得不到“數學上精確”的結果?
1.浮點數表示是由符號位,指數部分和尾數部分組成的
2.精度損失
3.誤差累積
五。
以下程式碼的輸出結果是什麼?
int X=100;
int Y=200;
System.out.println("X+Y="+X+Y);
System.out.println(X+Y+"=X+Y");
輸出結果為
X+Y=100200
300=X+Y
第一個是將X+Y=這個字串和X,Y進行連線,將XY視為字串。
第二個是X+Y同為整數進行了相加結果為300,之後+“=X+Y”,因為=X+Y是字串所以將300也視為字串.
六。
程式碼如下:
import java.util.Random;

public class TestDouble {
public static void main(String[] args) {
Random random = new Random();
for (int i = 1; i <= 30; i++) {
int num1 = random.nextInt(100) + 1; // 生成1到100之間的隨機數
int num2 = random.nextInt(100) + 1;
int operation = random.nextInt(4); // 0:加法, 1:減法, 2:乘法, 3:除法

    // 除法需要特別處理,確保可以整除
    if (operation == 3) {
        int temp = num1;
        num1 = num1 * num2;
        num2 = temp;
    }

    // 輸出題目
    System.out.print("題目" + i + ": ");
    switch (operation) {
        case 0:
            System.out.println(num1 + " + " + num2);
            break;
        case 1:
            System.out.println(num1 + " - " + num2);
            break;
        case 2:
            System.out.println(num1 + " * " + num2);
            break;
        case 3:
            System.out.println(num1 + " / " + num2);
            break;
    }
}

}
}
實現生成30道四則運算題目的程式估計寫好需要10分鐘。