---
# System prepended metadata

title: 問題整理

---

# 問題整理

### 1, 99乘法表表格整理（怎麼讓 1x1～1x9在同一排）

    不換行就是用 System.out.print("...."); 讓他去印內容
    然後每一組計算之間用 \t 去排版。

    然後跑完 9 個 ( 1*1 ~ 1*9 ) 之後，在迴圈外面換行。
    
    舉例：
    for (int i = 1; i < 10; i ++) {
        for (int j = 1; j < 10; j ++) {
            System.out.print("99乘法內容 \t");
        }
        System.out.println();    //括號內不加東西，或者加上空白，都可以直接換行
    }

### 2, switch case 跟 if else 的差別

    if else 語句通常用來對單個條件進行判斷，以及對複數個條件進行串聯或分支處理。
    如果有多個條件需要進行判斷，而且這些條件之間是獨立的，
    即一個條件的結果不會影響其他條件的判斷，那麼就適合使用 if else 語句。

    舉例來說：

    int index = 100;
    if (index > 0) {	//對單個條件進行判斷    
    } else {    
    }

    int index2 = 200;
    if (index > 0 && index2 < 300) {	//對複數個條件進行判斷
    } else {
    }

---

    switch case 語句則是用來對『一個變量』進行多個值的匹配。
    如果需要對同一個變量進行多個值的比較，而且這些值之間是互相排斥的，
    那麼就適合使用 switch case 語句。
    
    舉例來說：
    String key = "1";    //所謂的『一個變量』
    switch (key) {
    case "1":    //進行多個值匹配比較
        break;
    case "2":    //進行多個值匹配比較
        break;
    case "3":    //進行多個值匹配比較
        break;
    default:
        break;
    }

---

    然後，如果比較的值的範圍較小且值較少時，
    使用 switch case 語句的效率通常比 if else 更高。
    
    但如果想要用 if else 做 switch case 做的事情，也無不可。
    就看當下遇到的狀況適合哪一個方案了。

### 3, 要什麼時候用 BigDecimal

    有用到『小數點』計算的時候，建議用 BigDecimal

### 4, List 跟 ArrayList 的差別

    這個問題跟類別及繼承有關，下次課程會解釋
    