Cấu trúc lặp

Một phần của tài liệu Giáo trình lập trình trực quan (Trang 32 - 35)

C# cung cấp một bộ mở rộng các câu lệnh lặp, bao gồm các câu lệnh lặp

for, while do... while. Ngoài ra ngôn ngữ C# còn bổ sung thêm một câu lệnh

lặp foreach, lệnh này mới đối với người lập trình C/C++ nhưng khá thân thiện

vớingườilập trình VB. Cuối cùng là các câu lệnhnhảynhưgoto, break, continue,

return.

Câu lệnhnhảy goto

Lệnh nhảy goto là một lệnh nhảy đơn giản, cho phép chương trình nhảy vô điều kiện tới một vị trí trong chương trình thông qua tên nhãn. Tuy nhiên việc

sử dụng lệnh goto thường làm mất đi tính cấu trúc thuật toán, việc lạmdụng sẽ dẫn đến một chương trình nguồn mà giới lập trình gọi là “mì ăn liền” rối như mớ bòng bong vậy. Hầu hết các người lập trình có kinh nghiệmđều tránh dùng lệnh

goto. Sau đây là cách sử dụng lệnh nhảy goto:

 Tạo một nhãn

goto đến nhãn

Nhãn là một định danh theo sau bởi dấu hai chấm (:). Thường thường một lệnh

goto gắn với một điều kiện nào đó, ví dụ 3.10 sau sẽ minh họa các sử dụng lệnh

nhảygoto trong chương trình.

Ví dụ:

using System;

public class UsingGoto {

public static int Main() { int i = 0; lap: // nhãn Console.WriteLine(“i:{ 0}”,i); i++; if ( i < 10 )

goto lap; // nhãy về nhãn lap return 0; } } Kết quả: i:0 i:1

i:2 i:3 i:4 i:5 i:6 i:7 i:8 i:9

Nếu chúng ta vẽ lưu đồ của một chương trình có sử dụng nhiều lệnh goto, thì ta sẽ thấykết quả rất nhiều đường chồng chéo lên nhau, giống như là các sợi mì vậy. Chính vì vậy nên nhữngđoạn mã chương trình có dùng lệnhgoto còn được gọi là “spaghetti code”.

Việc tránh dùng lệnh nhảy goto trong chương trình hoàn toàn thực hiện được, có thể dùng vòng lặp while để thay thế hoàn toàn các câu lệnh goto.

Vòng lặp while

Ý nghĩa của vòng lặp while là: “Trong khi điềukiện đúng thì thực hiện các công

việc này”. Cú pháp sửdụng vòng lặpwhile như sau: while (Biểu thức)

<Câu lệnh thực hiện>

Biểu thức của vòng lặp while là điều kiện để các lệnh được thực hiện, biểu thức này bắt buộc phải trả về một giá trị kiểu bool là true/false. Nếu có nhiều câu lệnh cần được thực hiện trong vòng lặp while thì phải đặt các lệnh này trong khối lệnh. Ví dụ 3.11 minh họa việc sửdụng vòng lặpwhile.

Vòng lặp do...while

Đôi khi vòng lặp while không thoả mãn yêu cầu trong tình huống sau, chúng ta muốn chuyển ngữ nghĩa của while là “chạy trong khi điềukiệnđúng” thành ngữ nghĩa khác như “làm điều này trong khi điều kiện vẫn còn đúng”. Nói cách khác thực hiện một hành động, và sau khi hành động được hoàn thành thì kiểm tra điềukiện. Cú pháp sử dụng vònglặpdo...while như sau:

do

<Câu lệnh thực hiện> while ( điều kiện )

Ở đây có sự khác biệt quan trọng giữa vòng lặp while và vòng lặp do...while là khi dùng

vòng lặp do...while thì tối thiểu sẽ có một lần các câu lệnh trong do...while được thực hiện. Điều này cũng dễ hiểu vì lần đầu tiên đi vào vòng lặp do...while

thì điều kiện chưa được kiểm tra.

Vòng lặp for

Vòng lặp for bao gồm ba phần chính:

 Khởi tạo biến đếm vòng lặp

 Kiểm tra điều kiện biến đếm, nếu đúng thì sẽ thực hiện các lệnh bên trong vòng for

 Thay đổibướclặp.

Cú pháp sửdụng vòng lặpfor như sau:

for ([ phần khởi tạo] ; [biểu thức điều kiện]; [bước lặp]) <Câu lệnh thực hiện>

Câu lệnhlặp foreach

Vòng lặp foreach cho phép tạo vòng lặp thông qua một tập hợp hay một mảng. Đây là một câu lệnh lặp mới không có trong ngôn ngữ C/C++. Câu lệnh

foreach có cú pháp chung như sau:

foreach ( <kiểu tập hợp> <tên truy cập thành phần > in < tên tập hợp>) <Các câu lệnh thực hiện>

Do lặp dựa trên một mảng hay tập hợp nên toàn bộ vòng lặp sẽ duyệt qua tất cả các thành phần của tập hợp theo thứ tự được sắp. Khi duyệt đến phần tử cuối cùng trong tập hợp thì chương trình sẽ thoát ra khỏi vòng lặp foreach.

BÀI 2: XÂY DỰNG ỨNG DỤNG WINDOWS FORM

Một phần của tài liệu Giáo trình lập trình trực quan (Trang 32 - 35)