1. Trang chủ
  2. » Luận Văn - Báo Cáo

Báo cáo bài tập lớn đề tài tìm hiểu về cấu trúc điều khiển trong lập trình

45 1 0

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

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Nội dung

Cấu trúc điều khiển Câu lệnh điều khiển cho phép một lập trình viên xác định thứ tự thực thi các lệnh trong mỗi chương trình, thể hiện qua việc: Bỏ qua một vài câu lệnh để thực thi các c

Trang 1

TRƯỜNG ĐẠI HỌC MỞ HÀ NỘI

KHOA CÔNG NGHỆ THÔNG TIN

-BÁO CÁO BÀI TẬP LỚN

Đề tài: Tìm hiểu về cấu trúc điều khiển trong lập trình

Giảng viên hướng dẫn: TS Dương Thăng Long Học viên thực hiện: Trần Văn Nam (NT)

Trang 2

MỤC LỤC

I MỞ ĐẦU 4

II NỘI DUNG 5

1 Control flow (Kiểm soát dòng chảy): 5

1.1 Sequence (Cấu trúc điều khiển tuần tự): 5

1.2.3 Sự hoạt động của cấu trúc switch/case: 9

1.2.4 Một số lưu ý khi dùng switch/case: 10

1.3 Loop (Cấu trúc Vòng lặp): 11

1.3.1 Giới thiệu Vòng lặp là gì? 11

1.3.2 Một số vấn đề: 11

2 Semantic (Ngữ nghĩa): 29

2.1 Ngữ nghĩa động (Dynamic semantics): 29

2.1.1 Ngữ nghĩa tác vụ (Operational semantics): 29

2.1.2 Ngữ nghĩa tiên đề (Axiomatic semantics): 29

2.1.3 Ngữ nghĩa biểu thị: 30

2.2 Ngữ nghĩa tĩnh (Static semantics): 30

2.2.1 Bộ kiểm tra kiểu của định danh 30

3.2.2 Bộ kiểm tra kiểu của biểu thức 31

2.2.3 Bộ kiểm tra kiểu của câu lệnh: 32

2.2.4 Bộ kiểm tra kiểu của hàm: 32

3 Exception (Ngoại lệ): 33

3.1 Định nghĩa: 33

3.2 Mục đích của việc xử lý ngoại lệ: 33

3.3 Mô hình xử lý ngoại lệ: 34

3.3.1 Trường hợp handle exception điển hình bằng try catch: 34

3.3.2 Trường hợp khi ta phát triển một chức năng có thể phát sinh exception nhưng ta không muốn giải quyết chúng: 35

3.3.3 Trường hợp là sự kết hợp giữa hai tình huống trên: 35

3.3.4 Cá nhân hóa biệt lệ (custom exception): 36

3.4 Quản lý biệt lệ (Exception) trong ngôn ngữ Python: 36

III KẾT LUẬN 44

IV TÀI LIỆU THAM KHẢO 45 2

Trang 3

PHÂN CÔNG CÔNG VIỆC NHÓM 11 Trần Văn Nam – Trưởng nhóm

- Phần 1.1 Sequence (Cấu trúc điều khiển tuần tự)

- Phần 2 Semantic (Mô tả ngữ nghĩa)

5 Lưu Tuấn Kiệt

- Phần 3 Exception (Ngoại lệ)

3

Trang 4

I MỞ ĐẦU

Một trong những yếu tố quan trọng và không thể thiếu của một chương trình là “việc điều khiển”, cụ thể là các cấu trúc điều khiển, cũng là thành tố kết hợp đồng thời giữa dữ liệu và tác vụ Có thể hiểu, điều khiển trong lập trình là lựa chọn những câu lệnh nào sẽ thực hiện tiếp theo câu lệnh vừa thực thi Cấu trúc điều khiển (Câu lệnh điều khiển) cho phép một lập trình viên xác định thứ tự thực thi các lệnh trong mỗi chương trình, thể hiện qua việc: Bỏ qua một vài câu lệnh để thực thi các câu lệnh khác hoặc lặp lại một hoặc khối lệnh trong khi điều kiện còn đúng.

Cấu trúc điều khiển (Control Structure) là một trong các đặc trưng cơ bản của phương pháp lập trình cấu trúc Trong đó, người ta sử dụng 3 cấu trúc điều khiển để tạo nên logic của chương trình Mọi vấn đề về logic đều được giải quyết bằng cách phối hợp 3 cấu trúc: Cấu trúc tuần tự (Sequence structures), Cấu trúc chọn (Selection structures) và cấu trúc lặp (Iterative structures).

Một trường hợp khác, chúng ta muốn chương trình thực hiện lặp đi lặp lại một công việc nào đó với số lần thực hiện chưa biết trước Ví dụ, chúng ta muốn in ra điểm số của một trò chơi trên màn hình cho đến khi trò chơi kết thúc, chúng ta không thể biết chính xác thời điểm kết thúc trò chơi là khi nào.

Đề tài đề cập đến các cấu trúc điều khiển như Cấu trúc tuần tự, cấu trúc rẽ nhánh, cấu trúc vòng lặp đồng thời mô tả ngữ nghĩa và một số ngoại lệ thông qua một vài ví dụ trong lập trình một số ngôn ngữ như: C, C++, Python, Java,…

4

Trang 5

II NỘI DUNG

1 Control flow (Luồng điều khiển/Cấu trúc điều khiển)1.1 Sequence (Cấu trúc tuần tự):

1.1.1 Giới thiệu:

- Điều khiển tuần tự là tập hợp quy tắc xác định thứ tự thực hiện trong chương trình - Xét về mặt cấu trúc thì có 3 loại điều khiển tuần tự:

 Điều khiển tuần tự trong biểu thức  Điều khiển tuần tự giữa các lệnh.

 Điều khiển tuần tự giữa các chương trình con

- Xét về mặt thiết kế ngôn ngữ lập trình thì có 2 loại điều khiển tuần tự:  Điều khiển ẩn được thiết kế trong ngôn ngữ

 Điều khiển tường minh do người lập trình viết

1.1.2 Một số vấn đề:

* Điều khiển tuần tự trong biểu thức:

+ Cơ chế điều khiển tuần tự trong biểu thức là phép lấy hàm hợp: Một phép toán chính và các toán hạng của nó Trong đó các toán hạng có thể là các hằng, biến hoặc các phép toán khác mà toán hạng của chúng lại có thể là các hằng, các biến hoặc các phép toán khác…

+ Ví dụ: Xét biểu thức X=3+5*2

Kết của của biểu thức trên phụ thuộc vào thứ tự thực hiện các toán tử Bảng thứ tự thực hiện các toán tử trong Ngôn ngữ lập trình:

Lệnh cơ bản là lệnh mà trong đó không chứa các lệnh khác

Các lệnh cơ bản bao gồm các lệnh gán, gọi chương trình con, các lệnh nhập, xuất, lệnh nhảy GOTO.

 Điều khiển tuần tự dừng nhãn lệnh và lệnh GOTO

5

Trang 6

Cơ chế ban đầu của điều khiển tuần tự trong hầu hết các ngôn ngữ là ghi nhãn lệnh và chuyển đổi điều kiện tới lệnh có nhãn từ chỗ này đến chỗ khác trong trương trình Việc chuyển điều kiện này thường được thực hiện bởi lệnh GOTO, và GOTO có 2 dạng là: GOTO không điều kiện và GOTO có điều kiện.

Cú pháp của GOTO không điều kiện tức là trong chuỗi các lệnh, một lệnh GOTO không điều kiện như khi gặp lệnh goto label; chương trình sẽ chuyển đến lệnh có nhãn là

label Tất cả các lệnh đứng sau goto label; sẽ không được thư thi goto label;

.

label: statement;

Hiện nay trên một số ngôn ngữ mới như Python, lệnh GOTO được loại bỏ hoàn toàn Vì khi sử dụng nhãn và lệnh GOTO thì chương trình trở nên rất khó đọc bởi không có cấu trúc tổng thể và thứ tự các lệnh trong chương trình nguồn không ứng với thứ tự các lệnh khi thực hiện.

 Các lệnh cấu trúc

Một lệnh có cấu trúc là một lệnh các chứa các lệnh khác Các lệnh thành phần của một lệnh có cấu trúc có thể là một lệnh cơ bản hoặc mệnh lệnh có cấu trúc Hiện nay hầu hết tất cả các ngôn ngữ đều cung cấp một tập hợp các lệnh có cấu trúc biểu thị theo các dạng điều khiển cơ bản (hợp thành, lựa chọn, lặp lại) mà không cần dùng đến GOTO

 Các lệnh hợp thành

Lệnh hợp thành là một chuỗi các lệnh được đặt vào trong một cặp ký hiệu thể hiện sự mở đầu và kết thúc của chuỗi đó

+ Ví dụ: Trong ngôn ngữ Pascal, lệnh hợp thành các chuỗi lệnh được bắt đầu bằng Begin và kết thúc bằng End:

6

Trang 7

Tuy nhiên, ở một số ngôn ngữ bậc cao hơn như Python, tập các lệnh hợp thành được đặt trong cùng kiểu format giống nhau.

Yêu cầu: Viết chương trình Python thực hiện công việc sau:- Nhập vào số nguyên n; In ra các số nguyên nhỏ hơn n

 Điều khiển tuần tự giữa các chương trình con

Điều khiển tuần tự giữa các chương trình con chính là cách gộp nhóm các nhóm lệnh có liên quan lại với nhau, tạo thành sự mạch lạc giữa các chương trình sao cho máy tính xử lý các chương trình này từ trên xuống dưới có dạng như sau:

Ví dụ: Kiểm tra số n có phải là số nguyên tố không?

7

Trang 8

# nhóm lệnh 1: Nhập số nguyên nn = int(input("Nhập n:"))# Nhóm lệnh 2: Xử lý

flag = True # Giả định n là số nguyên tốfor x in range(2, int(n/2)+1):

- Cấu trúc rẽ nhánh: Cấu trúc dùng để diễn đạt một việc sẽ được thực hiện khi một điều kiện cụ thể được thỏa mãn.

 Ý nghĩa của nó là thoát ra khỏi cấu trúc, vòng lặp chứa nó (khái niệm về vòng lặp sẽ được trình bày ở bài Goto)

 Ngoài break ra vẫn còn lệnh nhảy khác như goto nhưng ít được sử dụng (chi tiết về lệnh goto sẽ được trình bày trong bài Goto).

 Vì trong cấu trúc switch case chủ yếu chỉ sử dụng lệnh break nên mình cố tình để lệnh break vào trong cú pháp thay vì ghi chung chung là lệnh nhảy.

 <biểu thức> phải là biểu thức trả về kết quả kiểu:  Số nguyên (int, long, byte, )

 Ký tự hoặc chuỗi (char, string)

8

Trang 9

Kiểu liệt kê (enum)

 <giá trị thứ i> với i = 1 n là giá trị muốn so sánh với giá trị của <biểu thức>  <câu lệnh thứ i> với i = 1 n là câu lệnh muốn thực hiện khi <giá trị thứ i> tương

ứng bằng với giá trị của <biểu thức>.

+ Ý nghĩa: Duyệt lần lượt từ trên xuống dưới và kiểm tra xem giá trị của <biểu thức> có bằng với <giá trị thứ i> đang xét hay không Nếu bằng thì thực hiện <câu lệnh thứ i> tương ứng.

Lưu ý:

<giá trị thứ i> phải có kiểu dữ liệu giống với kiểu dữ liệu của giá trị của biểuthức.

<câu lệnh thứ i> có thể gồm nhiều câu lệnh và không nhất thiết phải đặt trongcặp dấu ngoặc nhọn { } nhưng tốt hơn bạn nên đặt trong cặp dấu { } để code đượcrõ ràng hơn.

Nếu case đang xét không rỗng (có lệnh để thực hiện) thì bắt buộc phải có lệnhnhảy (cụ thể là lệnh break) sau đó.

* Cấu trúc switch case dạng đủ: + Cú pháp:

 switch, case, default là từ khóa bắt buộc  <biểu thức> phải là biểu thức trả về kết quả kiểu:

 Số nguyên (int, long, byte, )  Ký tự hoặc chuỗi (char, string)  Kiểu liệt kê (enum)

 <giá trị thứ i> với i = 1 n là giá trị muốn so sánh với giá trị của <biểu thức>  <câu lệnh thứ i> với i = 1…n là câu lệnh muốn thực hiện khi <giá trị thứ i> tương

ứng bằng với giá trị của <biểu thức>.

 <câu lệnh mặc định> là câu lệnh sẽ được thực hiện nếu giá trị <biểu thức> không bằng với <giá trị thứ i> nào.

+ Ý nghĩa: Duyệt lần lượt từ trên xuống dưới và kiểm tra xem giá trị của <biểu thức> có

bằng với <giá trị thứ i> đang xét hay không Nếu bằng thì thực hiện <câu lệnh thứ i> tương ứng Nếu không bằng tất cả các <giá trị thứ i> thì sẽ thực hiện <câu lệnh mặc định>.

1.2.3 Sự hoạt động của cấu trúc switch/case:

Phần này ta sẽ nói rõ về sự hoạt động của switch/case, cũng như sẽ giải thích vì sao cần có các lệnh break, và nếu không có thì sao?

Nhưng trước tiên, hãy chạy thử đoạn mã sau và xem kết kết quả:

Trang 10

Màn hình console in ra 3 dòng tương ứng với các trường hợp case 2, case 3 và default trong chương trình.

– Đầu tiên nói đến lệnh break, có chức năng là thoát khỏi khối lệnh hiện tại Khi chương trình thực hiện lệnh break, những câu lệnh còn lại phía sau (nếu có) sẽ bị bỏ qua Lệnh break cũng có chức năng kết thúc một vòng lặp.

– Và cách thức hoạt động của cấu trúc switch/case như sau: Đầu tiên giá trị của biểu thức trong ngoặc sẽ được tính, sau đó lần lượt so sánh với giá trị trong các case:

• Nếu giá trị biểu thức không trùng với bất kì giá trị nào trong các case, chương trình sẽ thực hiện các lệnh trong phần default (nếu có) rồi kết thúc cấu trúc witch.

• Nếu giá trị biểu thức trùng với giá trị của case k nào đó, chương trình sẽ thực hiện tuần tự các lệnh bắt đầu từ case k trở đi cho đến hết khối lệnh switch, bao gồm cả các case phía sau case k và trường hợp default (nếu có).

=> Đó chính là lí do vì sao mà đoạn chương trình phía trên cho kết quả như thế, và vì vậy, muốn chương trình thoát khỏi lệnh switch sau khi thực hiện xong một trường hợp nào đó, ta cần có lệnh break ở cuối mỗi trường hợp Riêng với đối trường hợp default, lệnh break có thể không cần phải viết vì nó đã là trường hợp cuối cùng, nên cũng không ảnh hưởng đến kết quả của chương trình.

1.2.4 Một số lưu ý khi dùng switch/case:

– Biểu thức sau switch phải là biểu thức có giá trị nguyên, và luôn luôn được đặt trong ngoặc.

– Tất cả các case và default phải cùng nằm trong một khối lệnh, giới hạn bởi cặp ngoặc nhọn.

– Giá trị trong các case phải là các hằng số nguyên khác nhau.

– Nếu các trường hợp khác nhau nhưng thực hiệnn cùg một lệnh thì có thể viết như sau:

Trang 11

Với cấu trúc trên thì nếu biểu thức có giá trị n1, n2 hoặc n3 thì chương trình sẽ thực hiện lệnh A, tương tự nếu có giá trị n4 hoặc n5 sẽ thực hiện lệnh B.

1.3 Loop (Cấu trúc Vòng lặp):

1.3.1 Giới thiệu Vòng lặp là gì?

Một trong những điểm mạnh lớn nhất của máy tính là khả năng thực hiện một chuỗi các lệnh lặp đi lặp lại Điều đó có được là do sử dụng các cấu trúc lặp trong ngôn ngữ lập trình.

Vòng lặp là một đoạn mã lệnh trong chương trình được thực hiện lặp đi lặp lại cho đến khi thỏa mãn một điều kiện nào đó Vòng lặp là một khái niệm cơ bản trong lập trình cấu trúc Ta sử dụng các toán tử quan hệ và toán tử logic trong các biểu thức điều kiện để điều khiển sự thực hiện của vòng lặp Có các vòng lặp: for, while, do-while,…

1.3.2 Một số vấn đề:

Hiện nay, có rất nhiều ngôn ngữ được sử dụng trong lập trình, có thể kể đến C++, Java, Python, C#, C, Haskell, Pascal,… Trong khuôn khổ báo cáo, chúng em xin đề cập những hiểu biết của mình về Vòng lặp trong ngôn ngữ lập trình Java, Python, C++ và C.

Trang 12

for (khởi tạo giá trị cho biến điều khiển; biểu thức điều kiện; biểu thức thay đổi giá trị của biến điều khiển)

Cậu lệnh (các câu lệnh); }

- Trình tự hoạt động được diễn giảng như sau:

B1 Khởi tạo giá trị biến lặp, chỉ thực hiện 1 lần duy nhất B2 Kiểm tra điều kiện lặp, nếu điều kiện sai => Chuyển sang B5 B3 Thực hiện nội dung lặp ở trong thân vòng lặp

B4 Cập nhật giá trị biến lặp => Quay lại B2

B5 Kết thúc vòng lặp, chương trình sẽ thoát ra khỏi vòng lặp for* Trong Python:

+ Cú pháp:

Vòng lặp for được sử dụng để lặp một biến qua một dãy (List hoặc String) theo thứ tự mà chúng xuất hiện Sau đây là cú pháp của vòng lặp for:

for bien_vong_lap in day_sequense: cac_lenh

Nếu một dãy day_sequense gồm một danh sách các biểu thức, nó được ước lượng đầu tiên Sau đó, item đầu tiên trong dãy được gán cho biến vòng lặp bien_vong_lap Tiếp theo, các khối lệnh cac_lenh được thực thi và khối lệnh này được thực thi tới khi dãy này đã được lặp xong.

+ Ví dụ:

for letter in 'Python': # Vi du dau tien print 'Chu cai hien tai:', letter qua = ['chuoi', 'tao', 'xoai'] for qua in qua: # Vi du thu hai print 'Ban co thich an:', qua print "Good bye!"

Khi code trên được thực thi sẽ cho kết quả: Chu cai hien tai: P

Chu cai hien tai: y Chu cai hien tai: t Chu cai hien tai: h Chu cai hien tai: o Chu cai hien tai: n Ban co thich an: chuoi Ban co thich an: tao

12

Trang 13

Ban co thich an: xoai Good bye!

* Trong C++:

+ Cú pháp:

Vòng lặp for là một cấu trúc lặp được sử dụng nhiều nhất trong ngôn ngữ C++, nó hoàn toàn có thể thay thế cho vòng lặp while Lập trình viên thường sử dụng vòng lặp for khi biết trước số lần lặp của vòng lặp.

for (init-statement; condition-expression; end-expression)

statements;

Nguyên lý hoạt động của vòng lặp for gồm 3 bước thực thi:

- init-statement: phần này có mục đích định nghĩa và khởi tạo biến, chỉ được thực thi

1 lần duy nhất trong lần lặp đầu tiên.

- condition-expression: phần này gồm các biểu thức điều kiện, nếu biểu thức điều kiện đúng, các câu lệnh trong vòng lặp sẽ được thực thi.

- end-expression: phần này thực thi cuối mỗi lần lặp, sau khi các câu lệnh trong vòng

lặp for được thực thi Phần này thường có mục đích tăng hoặc giảm giá trị các biến vòng lặp Sau khi thực thi xong, vòng lặp quay lại kiểm tra điều kiện lặp ở bước 2.

Trang 14

for (khoi_tao_bien; check_dieu_kien; tang/giam_bien) { // Khối lệnh được thực thi

public class ForSample1 {

public static void main(String[] args) {

System.out.print("Vòng lặp for với biến tăng: ");

for (int i = 1; i <= 5; i++) { System.out.print(i + " "); } // Hiển thị xuống dòng System.out.println(""); System.out.print("Vòng lặp for với biến giảm: "); for (int i =

Vòng lặp for với biến tăng: 1 2 3 4 5 Vòng lặp for với biến giảm: 5 4 3 2 1

++ Vòng lặp for cải tiến:

Vòng lặp for cải tiến được sử dụng để lặp mảng (array) hoặc tập hợp (collection) trong java Bạn có thể sử dụng nó dễ dàng, dễ hơn cả vòng lặp for đơn giản Bởi vì bạn không cần phải tăng hay giảm giá trị của biến rồi check điều kiện, bạn chỉ cần sử dụng ký hiệu

for (Type var: array) { // Khối lệnh được thực thi

Trang 15

Nếu để điều kiện lặp là true hoặc không xác định thì vòng lặp for sẽ chạy đến vô tận… đến khi stop chương trình đối với mỗi IDE (Eclipse, Netbean…) hoặc bấm Ctrl + C khi chạy bằng command hoặc đến khi hết bộ nhớ (StackOverflow).

public class ForSample3 {

public static void main(String[] args) { // for (int i = 1; true; i++) { for (int i = 1; ; i++) {

Trang 16

Ở đây, cac_lenh có thể là lệnh đơn hoặc một khối các lệnh dieu_kien có thể là bất kỳ biểu thức nào, và giá trị true là bất kỳ giá trị nào khác 0 Vòng lặp lặp đi lặp lại trong khi dieu_kien là true.

Khi điều kiện trở thành false, chương trình điều khiển ngay lập tức chuyển tới dòng lệnh ngay sau vòng lặp.

Sơ đồ:

Ở đây, điểm chính của vòng lặp while là nó có thể không chạy Bởi vì khi kiểm tra điều kiện và kết quả là false, phần thân vòng lặp được bỏ qua và lệnh đầu tiên ngay sau vòng

Trang 17

* Trong Python:+ Cú pháp:

While điều_kiện_kiểm_tra: Khối lệnh của while

Trong vòng lặp while, điều_kiện_kiểm_tra sẽ được kiểm tra đầu tiên Khối lệnh của vòng lặp chỉ được nạp vào nếu điều_kiện_kiểm_tra là True Sau một lần

lặp, điều_kiện_kiểm_tra sẽ được kiểm tra lại Quá trình này sẽ tiếp tục cho đến khi điều_kiện_kiểm_tra là False Trong Python mọi giá trị khác 0 đều là True, None và 0 được hiểu là False Đặc điểm này của while có thể dẫn đến trường hợp là while có thể không chạy vì ngay lần lặp đầu tiên điều_kiện_kiểm_tra đã False Khi đó, khối lệnh của while sẽ bị bỏ qua và phần code ngay sau đó sẽ được thực thi.

Sơ đồ vòng lặp while trong Python

Giống như hay vòng lặp for, khối lệnh của while cũng được xác định thông qua thụt lề.if Khối lệnh bắt đầu với thụt lề đầu tiên và kết thúc với dòng không thụt lề đầu tiên liền sau

Với đoạn code này, ta sẽ tăng dần count và in giá trị của nó cho đến khi giá trị này không còn nhỏ hơn 8 nữa Kết quả khi chạy lệnh trên ta có:

Trang 18

++ Vòng lặp while đơn giản:

Vòng lặp while trong java được sử dụng để lặp một phần của chương trình một vài lần Nếu số lần lặp không được xác định trước thì vòng lặp lặp while được khuyến khích sử dụng trong trường hợp này.

public class WhileSample1 {

public static void main(String[] args) {

Nếu bạn để điều kiện lặp là true thì vòng lặp while sẽ chạy đến vô tận… Đến khi bạn stop chương trình đối với mỗi IDE (Eclipse, Netbean…) hoặc bấm Ctrl + C khi chạy bằng command hoặc đến khi hết bộ nhớ (StackOverflow).

+ Ví dụ:

18

Trang 19

public class WhileSample2 {

public static void main(String[] args) {

Vòng l pặ do-while còn đượ ọc g i là vòng l p do trong C Khồng giồống nh vòng l pặ ư ặ for và while, vòng l pặ này ki m tra điềồu ki n t i cuồối vòng l p Điềồu này có nghĩa là vòng l p do-whileể ệ ạ ặ ặ seẽ được th c hi n ítự ệ nhấốt m t lấồn, ngay c khi điềồu ki n laộ ả ệ sai (false) lấồn ch y đấồu tiền Cú pháp t ng quát c a vòngở ạ ổ ủ

S đồồ khồốiơ

Code: Do

19

Trang 20

{ câu_lệnh }

while (điều_kiện);

- Cặp dấu ngoặc "{}" là không cần thiết khi chỉ có một câu lệnh hiện diện trong vòng lặp, nhưng việc sử dụng dấu ngoặc "{}" là một thói quen tốt Vòng lặp do-while lặp đến khi điều_kiện mang giá trị false Trong vòng lặp do-while, câu_lệnh (khối các câu lệnh) sẽ được thực thi trước, và sau đó điều_kiện được kiểm tra Nếu điều_kiện là true, chương trình sẽ quay lại thực hiện lệnh do Nếu điều kiện là false, chương trình chuyển đến thực hiện lệnh nằm sau vòng lặp Tương tự như vòng lặp for, các vòng lặp while và do-while cũng có thể lồng vào nhau.

* Trong C++:

Không giống như các vòng lặp for và while, mà kiểm tra điều kiện vòng lặp ở ngay bước đầu tiên của vòng lặp, vòng lặp do…while trong Ngôn ngữ C++ kiểm tra điều kiện của nó tại phần cuối của vòng lặp.

Một vòng lặp do…while là tương tự như vòng lặp while, ngoại trừ ở điểm một vòng lặp do…while bảo đảm thực hiện vòng lặp ít nhất một lần.

+ Cú pháp:

Cú pháp của một vòng lặp do…while trong Ngôn ngữ chương trình C++ là: do {cac_lenh;}

while(dieu_kien);

Bạn chú ý rằng, biểu thức điều kiện xuất hiện ở cuối cùng của vòng lặp, vì thế các lệnh trong vòng lặp thực hiện một lần trước khi điều kiện được kiểm tra.

Nếu điều kiện là true, dòng điều khiển vòng lặp quay trở lại, và các lệnh trong vòng lặp được thực hiện lần nữa Tiến trình này lặp đi lặp lại tới khi nào điều kiện đã cho trở thành

Trang 21

++ Vòng lặp do-while đơn giản:

Vòng lặp do-while trong java được sử dụng để lặp một phần của chương trình một vài lần Tương tự như vòng lặp while, ngoại trừ do-while thực hiện lệnh ít nhất một lần ngay

cả khi điều kiện là false.

+ Cú pháp:

1 do {

21

Trang 22

public class DoWhileSample1 { public static void main(String[] args) {

Nếu bạn để điều kiện lặp là true thì vòng lặp do-while sẽ chạy đến vô tận… Đến khi bạn stop chương trình đối với mỗi IDE (Eclipse, Netbean…) hoặc bấm Ctrl + C khi chạy

public class DoWhileSample2 { public static void main(String[] args) {

Ngày đăng: 08/04/2024, 12:46

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w