11-程式碼塊和變數的作用域

AI悅創發表於2020-10-03

目錄

  • 大括號括起來的就是程式碼塊
  • 變數的作用域
  • 理解作用域和名稱空間
  • for 迴圈巢狀

1. 大括號括起來的就是程式碼塊

  • 程式碼塊的示例
  • 有名字的程式碼塊—— if-else 程式碼塊,for 迴圈程式碼塊,main 方法程式碼塊
  • 程式碼塊也叫體,比如 for 迴圈體,main 方法體
  • 程式碼塊以巢狀

2. 變數的作用域

  • 程式碼塊裡建立和使用變數
    • 程式碼塊裡可以使用外層程式碼塊的變數
    • 程式碼塊裡建立變數
    • 不能在外層程式碼塊裡使用內層程式碼塊的變數。是否可以使用變數,也稱作變數在某個程式碼塊的可見性。也就是說,外層程式碼塊建立的變數對內層程式碼塊可見。內層程式碼塊中建立的變數對外層程式碼塊不可見。
    • 內層名稱空間不可以重複定義外層程式碼塊的變數,但是可以使用外層程式碼塊的變數
    • 程式碼塊無論巢狀多少層,都遵守上述變數可見性的
public class CodeBlock {
    public static void main(String[] args) {
        int outer = 100;

        {
            int inner = 10;
            System.out.println("outer變數的值是" + outer + "。inner變數的值是" + inner + "。");
        }

        // System.out.println(inner); // 找不到 inner

        int a1 = 1;
        {
            int a2 = a1 + 1;
            {
                int a3 = a2 + 1;
            }
            {
                int a3 = a2 + 10;
            }
            System.out.println(a2);
        }
    }
}
outer變數的值是100。inner變數的值是102

3. 理解作用域和名稱空間

  • 作用域和名稱空間
    • 同一個名稱空間中的變數不可以重名
    • 為了避免變數名衝突,所以必須有名稱空間

4. for 迴圈巢狀

  • 計算乘法表
    • 兩個數相乘,外層迴圈代表乘數,內層是被乘數。
    • 迴圈巢狀,變數名不可以重複。
    • 使用 break 語句讓輸出的乘法表更簡潔。
    • 使用 String 變數,做 String 的加法。
public class MultiTable {

    public static void main(String[] args) {
        for (int i = 1; i <= 9; i++) {
            String line = "";
            for (int j = 1; j <= 9; j++) {
                if (i < j) {
                    break;
                }
                line = line + j + "*" + i + "=" + (j * i) + "\t";
            }
            System.out.println(line);
        }
    }
}
1*1=1	
1*2=2	2*2=4	
1*3=3	2*3=6	3*3=9	
1*4=4	2*4=8	3*4=12	4*4=16	
1*5=5	2*5=10	3*5=15	4*5=20	5*5=25	
1*6=6	2*6=12	3*6=18	4*6=24	5*6=30	6*6=36	
1*7=7	2*7=14	3*7=21	4*7=28	5*7=35	6*7=42	7*7=49	
1*8=8	2*8=16	3*8=24	4*8=32	5*8=40	6*8=48	7*8=56	8*8=64	
1*9=9	2*9=18	3*9=27	4*9=36	5*9=45	6*9=54	7*9=63	8*9=72	9*9=81	

課外補充:

Python 程式碼實現九九乘法表。

for i in range(1, 10):
	line = ""
	for j in range(1, 10):
		if i < j:
			break
		line = line + f"{j} * {i} = {i * j}\t"
	print(line)

相關文章