Các cấu trúc điều khiển

Một phần của tài liệu Chương trình Quản lý kế toán doanh nghiệp (Trang 32 - 36)

phải gồm các lệnh điều khiển (rẽ nhánh, lặp...). Các lệnh này cho phép chương trình hoạt động theo một kịch bản xác định.

Cấu trc if rt gọn

if (<Điều kiện>) <Lệnh>;

Kiểm tra điều kiện (biểu thức logic)

 Điều kiện phải được đặt trong cặp ngoặc

 Điều kiện là 1 biểu thức logic

 Nếu điều kiện là đúng (true) thì thực hiện <Lệnh>

 Nếu điều kiện sai (false) thì bỏ qua, khơng thực hiện cc lệnh

 Nếu muốn thực hiện nhiều lệnh, đưa các lệnh này vào trong cùng 1 khối lệnh bắt đầu bằng { và kết thúc bằng }

Cấu trúc if đầy đủ

if (<Điều kiện>)

<Lệnh nếu điều kiện đúng>;

Kiểm tra điều kiện

 Nếu điều kiện đúng, thực hiện nhánh đúng.  Nếu điều kiện sai, thực hiện nhánh sai.  Ch ý:

17. Nếu là lệnh đơn, kết thúc nhánh đúng phải bằng dấu chấm phẩy

18. Nếu nhánh đúng hoặc nhánh sai là nhiều lệnh, đưa chúng vào trong 1 khối chương trình bằng cặp ngoặc { }

Cấu trc rẽ nhiều nhnh switch

switch (<Biểu thức>) { case <Gi trị 1>: <Cc lệnh 1>; break; case <Gi trị 2>: <Cc lệnh 2>; break; case <Gi trị 3>: case <Gi trị 4>: <Cc lệnh 3, 4>; break; default: break; }

Kiểm tra gi trị của một <Biểu thức>, ty theo gi trị của biểu thức l gì thì thực hiện cc lện tương ứng. Khác với lệnh if chỉ có tối đa 2 nhánh, lệnh switch có thể chia nhiều nhánh, rất thích hợp cho các lệnh điều kiện phức tạp.

Vịng lặp while

while (<Điều kiện>) <Lệnh lặp>;

Trong khi điều kiện cịn đúng thì thực hiện <Lệnh lặp>. Vịng lặp kiểm tra điều kiện trước khi thực hiện. Có nghĩa là <Lệnh lặp> có thể không được thực hiện một lần nào khi <Điều kiện> sai ngay từ đầu.

Để thực hiện nhiều lệnh trong vịng lặp, ta nhĩm cc lệnh vo trong một khối chương trình bằng cặp ngoặc {}

Vịng lặp do ... while

do

<Lệnh lặp>;

while (<Điều kiện>);

Khc với vịng lặp while, vịng lặp do ... while thực hiện <Lệnh lặp> trước rồi mới kiểm tra điều kiện. Từ đặc điểm này, có thể khẳng định <Lệnh lặp> sẽ được thực hiện tối thiểu 1 lần (kể cả trong trường hợp <Điều kiện> là sai).

trường hợp <Điều kiện> là đúng (phân biệt với repeat ... until của Pascal, lặp lại nếu điều kiện sai)

Vịng lặp for

for ([Lệnh khởi tạo] ; [Điều kiện kiểm tra] ; [Lệnh thay đổi]) <Lệnh lặp>; (adsbygoogle = window.adsbygoogle || []).push({});

Vịng lặp for sẽ thực hiện cc cơng việc sau đây:

 Khởi đầu vịng lặp bằng cch gọi [Lệnh khởi tạo] (thường là lệnh khởi tạo biến đếm)

 Lặp đi lặp lại các bước sau

19. Kiểm tra [Điều kiện kiểm tra], nếu sai thì thốt khỏi vịng lặp, nếu đúng thì thực hiện tiếp cc bước tiếp sau

20. Thực hiện <Lệnh lặp>

21. Thực hiện [Lệnh thay đổi] (thường là các lệnh tăng hoặc giảm biến đếm) Cấu trc vịng lặp for của C# giống với cấu trc for của C, khi qut hơn nhiều so với cấu trúc for của Pascal.

Ba thnh phần trong vịng lặp for đều được để trong ngoặc móc, có nghĩa là các thành phần này có thể không cần thiết. Ở trường hợp đơn giản nhất, vịng lặp for sẽ khơng cĩ cả 3 thnh phần ny. Khi đó, nếu không có lệnh thoát khỏi vịng lặp ở bn trong <Lệnh lặp>, vịng lặp l vịng lặp vơ hạn.

Vịng lặp foreach

foreach(<Kiểu phần tử> <phần tử> in <Đối tượng liệt k>) <Lệnh lặp>;

<Đối tượng liệt kê> thường là kiểu mảng hoặc List<>, Dictionary<>, Stack<>, Queue<>.

Biến <phần tử> được lần lượt gán với từng phần tử của <Đối tượng liệt kê>, mỗi lần lặp chương trình thực hiện <Lệnh lặp>.

Biến <phần tử> phải được khai báo kiểu bên trong vịng lặp, chỉ cĩ gi trị trong phạm vi vịng lặp.

Vịng lặp foreach gip việc lập trình trở nn đơn giản, dễ hiểu hơn. Hy xem ví dụ sau: R rng, đoạn chương trình trn cùng chức năng với đoạn chương trình in số v tính tổng (ví dụ của vịng lặp for). Tuy nhin, đoạn chương trình viết bằng foreach đơn giản và dễ hiểu hơn nhiều.

Theo khuyến co của Mircosoft, bạn khơng nn dng vịng lặp foreach ở những nơi cần tốc độ thực thi cao (do vịng lặp ny chạy chậm hơn vịng lặp for).

Cũng như tất cả các ngôn ngữ lập trình khc, khi cĩ nhiều cơng việc được thực hiện lặp đi lặp lại bởi cùng một đoạn code, cách tốt nhất là đưa đoạn code này vào một chương trình con để có thể sử dụng lại nhiều lần. Trong Pascal, chương trình con cĩ thể l thủ tục (procedure) hoặc hm (function). Đối với C#, các hàm bao giờ cũng là

phương thức của một lớp xác định nào đó:

 Gọi hàm phải thông qua đối tượng nếu hàm khai báo thường (không có từ khĩa static)

 Gọi hm phải thơng qua lớp nếu hm khai bo static (hm tĩnh)

[public | private | protected] [static] <Kiểu hm> <Tn hm> (danh sch tham số) { <cc lệnh>

return <gi trị trả về>; <cc lệnh>

}

 Giống như C, nếu hàm không trả về gi trị thì <Kiểu hm> l void.  Cc từ khĩa public hoặc private chỉ ra phạm vi của hm.

o Hm public là hàm có thể được gọi từ bất cứ đâu trong chương trình.

o Hm private là hàm chỉ có thể gọi được trong lớp khai báo hàm đó

o Hm protected l hm chỉ cĩ thể gọi được trong lớp khai báo hàm hoặc các lớp kế thừa lớp này

 Từ khĩa static

o Hm bình thường không khai báo từ khóa static. Khi đó hàm là

phương thức của đối tượng, có thể sử dụng các biến thành viên khai báo bên trong đối tượng. Hàm bình thường được gọi thơng qua đối tượng.

o Hm khai bo static l hm tĩnh. Hm l phương thức của lớp, chỉ có thể sử dụng các biến thành viên của lớp (cũng khai báo static) mà không thể sử dụng các biến thành viên của bất cứ đối tượng nào trong lớp (vì hm khơng thuộc đối tượng). Hàm tĩnh được gọi thơng qua lớp.

Cc dạng tham số (adsbygoogle = window.adsbygoogle || []).push({});

Cải tiến từ các ngôn ngữ như C, C++ và Pascal, C# đưa ra 3 dạng tham số:  Đầu vào

 Tham chiếu (ref)

Chức năng Đầu vào Đẩu ra (out) Tham chiếu (ref)

Khai bo int Tinh(int a); int Tinh(out int a); int Tinh(ref int a);

Gọi hm Tham số l một biểu thức Tinh(10);

Tinh(b+10);

Tham số l một biến int b;

Tinh(out b);

Tham số là 1 biến, vừa là đầu vào, vừa là đầu ra nên phải khởi tạo giá trị ban đầu: int b = 10;

Tinh(ref b);

Thay đổi giá trị tham số

Gi trị đưa vào là biểu thức, mọi thay đổi của tham số không ảnh hưởng đến chương trình gọi

Tham số đưa vào là một biến, mọi thay đổi giá trị của tham số bên trong hàm sẽ thay đổi biến này

Tham số đưa vào là một biến, mọi thay đổi giá trị của tham số bên trong hàm sẽ thay đổi biến này

Sử dụng Truyền gi trị từ bn ngồi vo

hm Truyền kết quả từ bn trong hm ra ngồi Truyền gi trị từ bn ngồi vo bn trong hm. Hm truyền lại kết quả từ bn trong ra ngồi

Ngoại lệ (Exception)

Một phần của tài liệu Chương trình Quản lý kế toán doanh nghiệp (Trang 32 - 36)