Module: Chương trình con: thủ tục và hàm - 1


Problem

8 /11


Biến cục bộ và biến toàn cục

Theory Click to read/hide

Biến cục bộ và biến toàn cục
Thường cần phải sử dụng các biến bổ sung sẽ chỉ được sử dụng trong chương trình con. Các biến như vậy được gọi là cục bộ (hoặc cục bộ) và chỉ có thể được thao tác trong chương trình con mà chúng được tạo.
 
Phạm vi biến cục bộ là khối được khai báo trong dấu ngoặc nhọn.
Chương trình chính trong C# cũng là một chương trình con, vì vậy tất cả các biến được khai báo bên trong void Main() đều là biến cục bộ. Các chương trình con khác không "biết" gì về các biến cục bộ của các chương trình con khác.

Như vậy, có thể giới hạn phạm vi (scope) của một biến chỉ cho chương trình con ở những nơi thực sự cần thiết. Trong lập trình, kỹ thuật này được gọi là đóng gói  - ẩn biến không cho thay đổi từ bên ngoài.

Nếu cần khai báo một biến có thể nhìn thấy ở bất kỳ đâu trong chương trình (trong bất kỳ chương trình con nào), thì các biến đó được khai báo bên ngoài tất cả các chương trình con (xem chương trình 3 trong bảng bên dưới).
Các biến như vậy được gọi là toàn cầu.

Trong C#, khi chương trình bắt đầu, tất cả các biến toàn cục sẽ tự động được đặt thành 0 (các biến boolean nhận giá trị false).

Phân tích ba chương trình:

Problem

Viết thủ tục với tham số n xuất ra cây thông Noel có vương miện có chiều cao n. Chương trình chính phải chứa giá trị đầu vào của biến n và lời gọi thủ tục.
 
Ví dụ
1) Trong chương trình này, biến i là cục bộ. Biến cục bộ được khai báo bên trong chương trình con. 2) Ở đây, ngay cả khi có một biến i trong chương trình chính (với giá trị 7), một biến cục bộ mới i với giá trị 5 sẽ được tạo. 
Khi chương trình này được thực hiện, giá trị 75 sẽ xuất hiện trên màn hình.
3) Chương trình này có biến toàn cục i. Giá trị của nó có thể được thay đổi bên trong chương trình con và bên trong chương trình chính.
Quy trình sẽ làm việc với biến toàn cục i và nó sẽ được gán một giá trị mới bằng 2. Giá trị 2 được hiển thị.
kiểm tra khoảng trống tĩnh () {   int tôi = 5; Console.Write("i"); } kiểm tra khoảng trống tĩnh () {   int tôi = 5;   Console.Write("i"); } khoảng trống tĩnh Main() { int tôi = 7;   Console.Write("i");   Bài kiểm tra(); } sử dụng Hệ thống; chương trình lớp học { int tôi; kiểm tra khoảng trống tĩnh () {   tôi = 2; } khoảng trống tĩnh Main() { Bài kiểm tra(); Console.Write("i"); } }
<đầu>
# Đầu vào Đầu ra
1 5     o    ooo   ooooo  ooooooo ooooooooo