11-程式碼塊和變數的作用域
目錄
- 大括號括起來的就是程式碼塊
- 變數的作用域
- 理解作用域和名稱空間
- 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變數的值是10。
2
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)
相關文章
- Go 程式碼塊與作用域,變數遮蔽問題詳解Go變數
- JavaScript中變數和作用域JavaScript變數
- javascript中的作用域(全域性變數和區域性變數)JavaScript變數
- 變數作用域變數
- lisp 變數的作用域Lisp變數
- Go變數作用域精講及程式碼實戰Go變數
- CSS變數的作用域和預設值CSS變數
- JS變數作用域JS變數
- SCSS 變數作用域CSS變數
- golang變數作用域Golang變數
- Python 函式和變數作用域Python函式變數
- java中變數的作用域Java變數
- JavaScript 變數的作用域鏈JavaScript變數
- python變數與變數作用域Python變數
- 酒店房間和 C++ 區域性變數的作用域C++變數
- PL/SQL變數作用域SQL變數
- LoadRunner變數作用域變數
- C# 變數作用域C#變數
- 變數、作用域和記憶體問題變數記憶體
- 現代 JavaScript 的變數作用域JavaScript變數
- Go語言中的變數作用域Go變數
- Shell變數的作用域問題變數
- 變數的作用域--js閉包變數JS
- 理解 Javascript 中變數的作用域JavaScript變數
- 細談sass和less中的變數及其作用域變數
- javascript基礎(函式與方法的區別,變數作用域,變數和函式的宣告提前,函式作用域)(十五)JavaScript函式變數
- 變數物件與作用域鏈變數物件
- JavaScript之變數及作用域JavaScript變數
- Go 語言變數作用域Go變數
- JavaScript變數作用域之殤JavaScript變數
- JS 底蘊之 變數、作用域和垃圾回收JS變數
- javascript:變數、作用域和記憶體問題JavaScript變數記憶體
- javascript變數、作用域和記憶體問題......JavaScript變數記憶體
- 好程式設計師JavaScript教程分享JavaScript中變數和作用域程式設計師JavaScript變數
- Go 中的動態作用域變數Go變數
- 注意for迴圈中變數的作用域變數
- c++臨時變數的作用域C++變數
- es6和es5變數宣告和作用域的不同變數