目录

  • 大括号括起来的就是代码块
  • 变量的作用域
  • 理解作用域和命名空间
  • 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)
AI悦创·创造不同!
AI悦创 » 11-代码块和变量的作用域

Leave a Reply