1. Trang chủ
  2. » Công Nghệ Thông Tin

Biến và hằng

10 251 0

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 10
Dung lượng 103,09 KB

Nội dung

Biến Biến Bởi: Khuyet Danh Để tạo biến phải khai báo kiểu biến gán cho biến tên Biến khởi tạo giá trị khai báo, hay gán giá trị vào lúc chương trình Ví dụ sau minh họa sử dụng biến Khởi tạo gán giá trị đến biến class MinhHoaC3 { static void Main() { int bien1 = 9; System.Console.WriteLine("Sau khoi tao: bien1 ={0}", bien1); bien1 = 15; System.Console.WriteLine("Sau gan: bien1 ={0}", bien1); } } -Kết quả: 1/10 Biến Sau khoi tao: bien1 = Sau gan: bien1 = 15 -Ngay khai báo biến ta gán giá trị cho biến, xuất biến biến có giá trị Thực phép gán biến cho giá trị 15 biến có giá trị 15 xuất kết 15 Gán giá trị xác định cho biến C# đòi hỏi biến phải khởi tạo trước sử dụng Để kiểm tra luật thay đổi dòng lệnh khởi tạo biến bien1 ví dụ 3.1 sau: int bien1; giữ nguyên phần lại ta ví dụ sau: Sử dụng biến không khởi tạo -class MinhHoaC3 { static void Main() { int bien1; System.Console.WriteLine("Sau khoi tao: bien1 ={0}", bien1); bien1 = 15; System.Console.WriteLine("Sau gan: bien1 ={0}", bien1); } 2/10 Biến } -Khi biên dịch đoạn chương trình trình biên dịch C# thông báo lỗi sau: error CS0165: Use of unassigned local variable ‘bien1’ Việc sử dụng biến chưa khởi tạo không hợp lệ C# Ví dụ không hợp lệ Tuy nhiên không thiết lúc phải khởi tạo biến Nhưng để dùng bắt buộc phải gán cho chúng giá trị trước có lệnh tham chiếu đến biến Điều gọi gán giá trị xác định cho biến C# bắt buộc phải thực điều này.Ví dụ sau minh họa chương trình Biến không tạo sau gán giá trị class MinhHoaC3 { static void Main() { int bien1; bien1 = 9; System.Console.WriteLine("Sau khoi tao: bien1 ={0}", bien1); bien1 = 15; System.Console.WriteLine("Sau gan: bien1 ={0}", bien1); } } 3/10 Biến Hằng Hằng biến giá trị không thay đổi Biến công cụ mạnh, nhiên làm việc với giá trị định nghĩa không thay đổi, ta phải đảm bảo giá trị không thay đổi suốt chương trình Ví dụ, lập chương trình thí nghiệm hóa học liên quan đến nhiệt độ sôi, hay nhiệt độ đông nước, chương trình cần khai báo hai biến DoSoi DoDong, không cho phép giá trị hai biến bị thay đổi hay bị gán Để ngăn ngừa việc gán giá trị khác, ta phải sử dụng biến kiểu Hằng phân thành ba loại: giá trị (literal), biểu tượng (symbolic constants), kiểu liệu kê (enumerations) Giá trị hằng: ta có câu lệnh gán sau: x = 100; Giá trị 100 giá trị Giá trị 100 100 Ta gán giá trị khác cho 100 Biểu tượng hằng: gán tên cho giá trị hằng, để tạo biểu tượng dùng từ khóa const cú pháp sau: = ; Một biểu tượng phải khởi tạo khai báo, khởi tạo lần suốt chương trình không thay đổi const int DoSoi = 100; Trong khai báo trên, 32 số DoSoi biểu tượng có kiểu nguyên Ví dụ sau minh họa việc sử dụng biểu tượng Sử dụng biểu tượng -class MinhHoaC3 4/10 Biến { static void Main() { const int DoSoi = 100; // Độ C const int DoDong = 0; // Độ C System.Console.WriteLine( "Do dong cua nuoc {0}", DoDong ); System.Console.WriteLine( "Do soi cua nuoc {0}", DoSoi ); } } -Kết quả: Do dong cua nuoc Do soi cua nuoc 100 -Ví dụ tạo hai biểu tượng chứa giá trị nguyên: DoSoi DoDong, theo qui tắc đặt tên tên thường đặt theo cú pháp Pascal, điều không đòi hỏi ngôn ngữ nên ta đặt tùy ý Việc dùng biểu thức làm cho chương trình viết tăng thêm phần ý nghĩa với dễ hiểu Thật dùng số 100 thay cho hai biểu tượng trên, chương trình không dễ hiểu không tự nhiên Trình biên dịch không chấp nhận lệnh gán giá trị cho biểu tượng Ví dụ viết lại sau 5/10 Biến class MinhHoaC3 { static void Main() { const int DoSoi = 100; // Độ C const int DoDong = 0; // Độ C System.Console.WriteLine( "Do dong cua nuoc {0}", DoDong ); System.Console.WriteLine( "Do soi cua nuoc {0}", DoSoi ); DoSoi = 200; } } Khi trình biên dịch phát sinh lỗi sau: error CS0131: The left-hand side of an assignment must be a variable, property or indexer Kiểu liệt kê Kiểu liệt kê đơn giản tập hợp tên có giá trị không thay đổi (thường gọi danh sách liệt kê) Trong ví dụ trên, có hai biểu tượng có quan hệ với nhau: const int DoDong = 0; const int DoSoi = 100; Do mục đích mở rộng ta mong muốn thêm số số khác vào danh sách trên, sau: const int DoNong = 60; const int DoAm = 40; const int DoNguoi = 20; 6/10 Biến Các biểu tượng điều có ý nghĩa quan hệ với nhau, nói nhiệt độ nước,khi khai báo cồng kềnh không liên kết chặt chẽ cho Thay vào C# cung cấp kiểu liệt kê để giải vấn đề trên: enum NhietDoNuoc { DoDong = 0, DoNguoi = 20, DoAm = 40, DoNong = 60, DoSoi = 100, } Mỗi kiểu liệt kê có kiểu liệu sở, kiểu liệu kiểu liệu nguyên int, short, long nhiên kiểu lịêu liệt kê không chấp nhận kiểu ký tự Để khai báo kiểu liệt kê ta thực theo cú pháp sau: [thuộc tính] [bổ sung] enum [:kiểu sở] {danh sách thành phần liệt kê}; Thành phần thuộc tính bổ sung tự chọn trình bày phần sau sách Trong phần tập trung vào phần lại khai báo Một kiểu liệt kê bắt đầu với từ khóa enum, tiếp sau định danh cho kiểu liệt kê: enum NhietDoNuoc Thành phần kiểu sở kiểu khai báo cho mục kiểu liệt kê Nếu bỏ qua thành phần trình biên dịch gán giá trị mặc định kiểu nguyên int, nhiên sử dụng kiểu nguyên ushort hay long, ngoại trừ kiểu ký tự Đoạn ví dụ sau khai báo kiểu liệt kê sử dụng kiểu sở số nguyên không dấu uint: enum KichThuoc :uint { Nho = 1, Vua = 2, Lon = 3, } Là khai báo kiểu liệt kê phải kết thúc danh sách liệt kê, danh sách liệt kê phải có gán, thành phần phải phân cách dấu phẩy 7/10 Biến Ta viết lại ví dụ minh họa sau Sử dụng kiểu liệt kê để đơn giản chương trình -class MinhHoaC3 { // Khai báo kiểu liệt kê enum NhietDoNuoc { DoDong = 0, DoNguoi = 20, DoAm = 40, DoNong = 60, DoSoi = 100, } static void Main() { System.Console.WriteLine( "Nhiet dong: {0}", NhietDoNuoc.DoDong); System.Console.WriteLine( "Nhiet nguoi: {0}", NhietDoNuoc.DoNguoi); System.Console.WriteLine( "Nhiet am: {0}", NhietDoNuoc.DoAm); System.Console.WriteLine( "Nhiet nong: {0}", NhietDoNuoc.DoNong); System.Console.WriteLine( "Nhiet soi: {0}", NhietDoNuoc.DoSoi); } } -Kết quả: Nhiet dong: 8/10 Biến Nhiet nguoi: 20 Nhiet am: 40 Nhiet nong: 60 Nhiet soi: 100 Mỗi thành phần kiểu liệt kê tương ứng với giá trị số, trường hợp số nguyên Nếu không khởi tạo cho thành phần chúng nhận giá trị với thành phần Ta xem thử khai báo sau: enum Thutu { ThuNhat, ThuHai, ThuBa = 10, ThuTu } Khi giá trị ThuNhat 0, giá trị ThuHai 1, giá trị ThuBa 10 giá trị ThuTu 11 Kiểu liệt kê kiểu hình thức bắt buộc phải thực phép chuyển đổi tường minh với kiêu giá trị nguyên: int x = (int) ThuTu.ThuNhat; Kiểu chuỗi ký tự Kiểu liệu chuỗi thân thiện với người lập trình ngôn ngữ lập trình nào, kiểu liệu chuỗi lưu giữ mảng ký tự Để khai báo chuỗi sử dụng từ khoá string tương tự cách tạo thể đối tượng nào: string chuoi; Một chuỗi tạo cách đặt chuỗi dấu nháy đôi: 9/10 Biến “Xin chao” Đây cách chung để khởi tạo chuỗi ký tự với giá trị hằng: string chuoi = "Xin chao" Kiểu chuỗi đề cập sâu chương 10 Định danh Định danh tên mà người lập trình định cho kiểu liệu, phương thức, biến, hằng, hay đối tượng Một định danh phải bắt đầu với ký tự chữ hay dấu gạch dưới, ký tự lại phải ký tự chữ cái, chữ số, dấu gạch Theo qui ước đặt tên Microsoft đề nghị sử dụng cú pháp lạc đà (camel notation) bắt đầu ký tự thường để đặt tên cho biến cú pháp Pascal (Pascal notation) với ký tự hoa cho cách đặt tên hàm hầu hết định danh lại Hầu Microsoft không dùng cú pháp Hungary iSoNguyen hay dấu gạch Bien_Nguyen để đặt định danh Các định danh không trùng với từ khoá mà C# đưa ra, tạo biến có tên class hay int Ngoài ra, C# phân biệt ký tự thường ký tự hoa C# xem hai biến bienNguyen bienguyen hoàn toàn khác 10/10 .. .Biến Sau khoi tao: bien1 = Sau gan: bien1 = 15 -Ngay khai báo biến ta gán giá trị cho biến, xuất biến biến có giá trị Thực phép gán biến cho giá trị 15 biến. .. System.Console.WriteLine("Sau gan: bien1 ={0}", bien1); } } 3/10 Biến Hằng Hằng biến giá trị không thay đổi Biến công cụ mạnh, nhiên làm việc với giá trị định nghĩa... định cho biến C# đòi hỏi biến phải khởi tạo trước sử dụng Để kiểm tra luật thay đổi dòng lệnh khởi tạo biến bien1 ví dụ 3.1 sau: int bien1; giữ nguyên phần lại ta ví dụ sau: Sử dụng biến không

Ngày đăng: 31/12/2015, 21:42

TỪ KHÓA LIÊN QUAN

w