Các câu lệnh điều khiển hoặc luồng câu lệnh điều khiển được sử dụng để điều khiển luồng chương trình Dart. Các câu lệnh này rất quan trọng trong bất kỳ ngôn ngữ lập trình nào để quyết định xem câu lệnh khác có được thực thi hay không. Câu lệnh mã thường chạy theo cách tuần tự. Chúng tôi có thể yêu cầu thực hiện hoặc bỏ qua một số nhóm câu lệnh dựa trên điều kiện đã cho, chuyển sang câu lệnh khác hoặc lặp lại việc thực hiện các câu lệnh.
Trong Dart, câu lệnh điều khiển cho phép dòng chương trình trôi chảy. Bằng cách sử dụng các câu lệnh luồng điều khiển, một chương trình Dart có thể được thay đổi, chuyển hướng hoặc lặp lại dựa trên logic ứng dụng.
Xem thêm Điều kiện if else trong ngôn ngữ SAS
Các hạng mục của Flow Statement
Trong Dart, câu lệnh luồng điều khiển có thể được phân loại chủ yếu theo ba cách sau.
- Statement ra quyết định
- Câu lệnh lặp
- Câu lệnh nhảy
Statement ra quyết định của Dart
Các câu lệnh Ra quyết định cho phép chúng tôi xác định câu lệnh nào sẽ thực thi dựa trên biểu thức kiểm tra trong thời gian chạy. Các câu lệnh ra quyết định còn được gọi là câu lệnh Lựa chọn. Trong chương trình Dart, có thể tồn tại một biểu thức (hoặc điều kiện) đơn hoặc nhiều kiểm tra, đánh giá Boolean TRUE và FALSE. Các kết quả này của biểu thức / điều kiện giúp quyết định khối câu lệnh nào sẽ thực thi nếu điều kiện đã cho là TRUE hoặc FALSE.
Dart cung cấp các loại Statement ra quyết định sau đây.
- if Statement
- Câu lệnh If-else
- Nếu khác if Statement
- Chuyển đổi trường hợp Statement
Statement về vòng lặp Dart
Các câu lệnh lặp Dart được sử dụng để thực thi khối mã nhiều lần trong một khoảng thời gian nhất định cho đến khi nó khớp với điều kiện đã cho. Các câu lệnh này còn được gọi là câu lệnh lặp lại.
Dart cung cấp các loại câu lệnh lặp sau.
- Dart for vòng lặp
- Dart for… .in loop
- Vòng lặp Dart while
- Dart do while vòng lặp
Statement về Jum
Câu lệnh Jump được sử dụng để nhảy từ một câu lệnh khác, hoặc chúng ta có thể nói rằng nó chuyển việc thực thi sang một câu lệnh khác từ câu lệnh hiện tại.
Dart cung cấp các loại câu lệnh nhảy sau:
- Statement Break
- Statement contineu
Các câu lệnh nhảy ở trên hoạt động khác nhau.
Xem thêm Gaurd Statement trong swift
If statement trong Dart
Câu lệnh if cho phép chúng ta thực thi một khối mã khi điều kiện đã cho trả về true. Trong lập trình Dart, chúng ta có một kịch bản mà chúng ta muốn thực thi một khối mã khi nó thỏa mãn điều kiện đã cho. Điều kiện đánh giá các giá trị Boolean là TRUE hoặc FALSE và quyết định được thực hiện dựa trên các giá trị Boolean này.
Cú pháp của câu lệnh if được đưa ra dưới đây.
Cú pháp
- if (điều kiện) {
- //các câu lệnh)
- }
Điều kiện đã cho là câu lệnh if sẽ đánh giá TRUE hoặc FALSE, nếu nó đánh giá true thì câu lệnh bên trong if body được thực thi, nếu nó đánh giá false thì câu lệnh bên ngoài nếu khối được thực thi.
Hãy hiểu ví dụ sau.
Ví dụ 1
void main () { // xác định một biến chứa giá trị số var n = 35 ; // câu lệnh if kiểm tra điều kiện đã cho if (n < 40 ) { print ( "Số nhỏ hơn 40" ) ; }; }
Giải trình –
Trong chương trình trên, chúng ta đã khai báo một biến số nguyên n. Chúng tôi đã chỉ định điều kiện trong câu lệnh if. Số đã cho có nhỏ hơn 40 hay không? Câu lệnh if được đánh giá là true, nó thực thi phần thân if và in ra kết quả.
Ví dụ – 2
void main () { // xác định một biến chứa giá trị số var age = 16 ; // câu lệnh if kiểm tra điều kiện đã cho if (age > 18 ) { print ( "Bạn đủ điều kiện để bỏ phiếu" ); }; print ( "Bạn không đủ điều kiện để bỏ phiếu" ); }
Trong chương trình trên, chúng ta có thể thấy rằng điều kiện if được đánh giá là false thì quá trình thực thi đã bỏ qua phần thân if và thực hiện câu lệnh bên ngoài của khối if.
Câu lệnh if-else trong Dart
Trong Dart, if-block được thực thi khi điều kiện đã cho là đúng. Nếu điều kiện đã cho là sai, khối khác sẽ được thực thi. Khối else được liên kết với khối if.
Cú pháp:
- if (điều kiện) {
- // các câu lệnh);
- } else {
- // các câu lệnh);
- }
Ở đây, câu lệnh if -else được sử dụng cho một trong hai loại kết quả TRUE hoặc False. Nếu điều kiện đã cho cho kết quả là true, thì if body được thực thi và nếu điều kiện đã cho cho kết quả là false; sau đó, phần thân khác được thực thi.
Hãy hiểu ví dụ sau.
Ví dụ –
void main () { var x = 20 ; var y = 30 ; print ( "Ví dụ câu lệnh if-else" ); if (x> y) { print ( "x lớn hơn y" ); } else { print ( "y lớn hơn x" ); }; }
Giải trình –
Trong đoạn mã trên, chúng ta có hai biến được lưu trữ giá trị số nguyên. Điều kiện đã cho được đánh giá là false thì nó sẽ in ra khối khác.
Ví dụ -2 Viết chương trình tìm số đã cho là số chẵn hay lẻ.
void main () { var num = 20 ; print ( "Ví dụ câu lệnh if-else" ); if (num% 2 == 0 ) { print ( "Số đã cho là số chẵn" ); } else { print ( "Số đã cho là số lẻ" ); }; }
Giải trình –
Trong ví dụ trên, chúng ta có một biến số nguyên num lưu trữ 20 và chúng ta đã sử dụng câu lệnh if-else để kiểm tra xem một số đã cho có phải là số lẻ hay không. Điều kiện đã cho được đánh giá đúng vì môđun của 20 bằng 0 thì nó in ra số đã cho là số chẵn trên màn hình.
Xem thêm Sử dụng If Statement trong Swift
If else-if trong Dart
Câu lệnh Dart if else-if cung cấp cơ sở để kiểm tra một tập hợp các biểu thức kiểm tra và thực thi các câu lệnh khác nhau. Nó được sử dụng khi chúng ta phải đưa ra quyết định từ nhiều hơn hai khả năng.
Cú pháp
- if (condition1) {
- // các câu lệnh)
- }
- else if (condition2) {
- // các câu lệnh)
- }
- else if (điều kiệnN) {
- // các câu lệnh)
- }
- .
- .
- else {
- // các câu lệnh)
- }
Ở đây, loại cấu trúc này còn được gọi là bậc thang else… .if. Điều kiện được đánh giá từ trên xuống dưới. Bất cứ khi nào nó tìm thấy điều kiện đúng, câu lệnh liên quan đến điều kiện đó sẽ được thực thi. Khi tất cả các điều kiện đã cho là sai, thì khối khác được thực thi.
Hãy hiểu ví dụ sau.
Ví dụ – Viết chương trình in ra kết quả dựa vào điểm của học sinh.
void main () { var point = 74 ; if (point> 85 ) { print ( "Xuất sắc" ); } else if (point> 75 ) { print ( "Rất Tốt" ); } else if (point> 65 ) { print ( "Tốt" ); } else { print ( "Trung bình" ); } }
Giải trình –
Chương trình trên in kết quả dựa trên điểm đã ghi trong bài kiểm tra. Chúng tôi đã sử dụng if else if để in kết quả. Chúng tôi đã khởi tạo biến dấu với giá trị nguyên 74. Chúng tôi đã kiểm tra nhiều điều kiện trong chương trình.
Các điểm sẽ được kiểm tra với điều kiện đầu tiên vì nó sai, và sau đó nó được chuyển sang kiểm tra điều kiện thứ hai.
Nó so sánh với điều kiện thứ hai và thấy đúng, sau đó nó in kết quả đầu ra trên màn hình.
Quá trình này sẽ tiếp tục cho đến khi tất cả các biểu thức được đánh giá; nếu không điều khiển sẽ chuyển ra khỏi lệnh khác nếu lệnh Ladder và lệnh mặc định được in.
Bạn nên sửa đổi giá trị trên và thông báo kết quả.
Các bài viết khác:
Câu lệnh lồng nhau
Câu lệnh if else lồng nhau của Dart có nghĩa là một if-else bên trong một if-else khác. Nó có lợi khi chúng ta cần một loạt các quyết định. Hãy hiểu ví dụ sau.
Ví dụ – Viết chương trình tìm số lớn nhất.
void main () { var a = 10 ; var b = 20 ; var c = 30 ; if (a> b) { if (a> c) { print ( "a lớn hơn" ); } else { print ( "c lớn hơn" ); } } else if (b> c) { print ( "b lớn hơn" ); } else { print ( "c lớn hơn" ); } }
Trong chương trình trên, chúng ta đã khai báo ba biến a, b và c với các giá trị 10, 20 và 30. Trong if-else bên ngoài, chúng ta đã cung cấp điều kiện để nó kiểm tra xem a có lớn hơn b hay không. Nếu điều kiện là đúng thì nó sẽ thực thi khối bên trong nếu không khối bên ngoài sẽ được thực thi.
Trong khối bên trong, chúng ta có một điều kiện khác là kiểm tra xem biến a có lớn hơn c hay không. Nếu điều kiện được đánh giá là true thì khối bên trong sẽ được thực thi.
Chương trình của chúng tôi trả về false trong điều kiện đầu tiên, và sau đó nó bỏ qua kiểm tra khối bên trong một điều kiện khác. Nếu thỏa mãn điều kiện và in kết quả ra màn hình.
Xem thêm Sử dụng if…else trong Python
Switch Case trong Dart
Câu lệnh trường hợp Dart Switch được sử dụng để tránh chuỗi dài của câu lệnh if-else. Đây là dạng đơn giản hóa của câu lệnh if-else lồng nhau. Giá trị của biến so sánh với nhiều trường hợp và nếu tìm thấy một kết quả phù hợp, thì biến đó sẽ thực thi một khối câu lệnh được liên kết với trường hợp cụ thể đó.
Giá trị được chỉ định được so sánh với từng trường hợp cho đến khi tìm thấy kết quả phù hợp. Sau khi tìm thấy khớp, nó xác định khối mã sẽ được thực thi.
Sơ đồ
Cú pháp được đưa ra dưới đây.
switch (biểu thức) { case 1 : { //các câu lệnh) } break ; case 2 : { //các câu lệnh) // } break ; case N: { //các câu lệnh) // } break ; default : { //các câu lệnh); } }
Ở đây, biểu thức có thể là biểu thức số nguyên hoặc biểu thức ký tự. Giá trị 1, 2, n đại diện cho các nhãn trường hợp và chúng được sử dụng để xác định từng trường hợp cụ thể. Mỗi nhãn phải được kết thúc bằng dấu hai chấm (:).
Các nhãn phải là duy nhất vì nhãn trùng tên sẽ tạo ra sự cố trong khi chạy chương trình.
Một khối được liên kết với nhãn trường hợp. Khối không là gì ngoài một nhóm nhiều câu lệnh cho một trường hợp cụ thể.
Khi biểu thức switch được đánh giá, giá trị biểu thức được so sánh với tất cả các trường hợp mà chúng ta đã xác định bên trong trường hợp switch. Giả sử giá trị của biểu thức là 2, sau đó so sánh với từng trường hợp cho đến khi tìm thấy nhãn 2 trong chương trình.
Câu lệnh break rất cần thiết để sử dụng ở cuối mỗi trường hợp. Nếu chúng ta không đặt câu lệnh break, thì ngay cả trường hợp cụ thể được tìm thấy, nó sẽ thực hiện tất cả các trường hợp cho đến khi kết thúc chương trình. Từ khóa break dùng để khai báo câu lệnh break.
Đôi khi giá trị của biểu thức không khớp với bất kỳ trường hợp nào; thì trường hợp mặc định sẽ được thực thi. Nó là tùy chọn để viết trong chương trình.
Hãy hiểu ví dụ sau.
void main () { int n = 3 ; switch (n) { case 1 : print ( "Giá trị là 1" ); break ; case 2 : print ( "Giá trị là 2" ); break ; case 3 : print ( "Giá trị là 3" ); break ; case 4 : print ( "Giá trị là 4" ); break ; default : print ( "Hết phạm vi" ); break ; } }
Giải trình –
Trong chương trình trên, chúng ta đã khởi tạo biến n với giá trị 3. Chúng ta đã xây dựng trường hợp chuyển đổi với biểu thức, được sử dụng để so sánh từng trường hợp với biến n. Vì giá trị là 3 nên nó sẽ thực thi nhãn chữ hoa chữ thường 3. Nếu tìm thấy thành công nhãn chữ hoa chữ thường 3, và in kết quả ra màn hình.
Hãy xem một kịch bản khác.
Ví dụ –
void main () { // khai báo một biến interger int Roll_num = 90014 ; // Đánh giá biểu thức kiểm tra để tìm kết quả phù hợp switch (Roll_num) { case 90009 : print ( "Tên tôi là Joseph" ); break ; case 90010 : print ( "Tên tôi là Peter" ); break ; case 090011 : print ( "Tên tôi là Devansh" ); break ; // khối mặc định default : print ( "Không tìm thấy số cuộn" ); } }
Giải trình –
Trong chương trình trên, chúng ta đã khởi tạo biến Roll_num với giá trị là 90014. Biểu thức kiểm tra switch đã kiểm tra tất cả các trường hợp được khai báo bên trong câu lệnh switch. Biểu thức kiểm tra không tìm thấy kết quả phù hợp trong các trường hợp; sau đó nó in câu lệnh trường hợp mặc định.
Lợi ích của Switch
Như chúng ta đã thảo luận ở trên, trường hợp chuyển đổi là một dạng đơn giản hóa của câu lệnh if-else lồng nhau. Vấn đề với if-else lồng nhau, nó tạo ra sự phức tạp trong chương trình khi nhiều đường dẫn tăng lên. Trường hợp chuyển đổi làm giảm độ phức tạp của chương trình. Nó nâng cao khả năng đọc của chương trình.
Xem thêm For trong PHP là gì ?
Vòng lặp(Loops) trong Dart
Vòng lặp Dart được sử dụng để chạy lặp lại một khối mã trong một số lần nhất định hoặc cho đến khi khớp với điều kiện đã chỉ định. Vòng lặp là công cụ cần thiết cho bất kỳ ngôn ngữ lập trình nào. Nó được sử dụng để lặp lại Dart có thể lặp lại như danh sách, bản đồ, v.v. và thực hiện các hoạt động nhiều lần. Một vòng lặp có thể có hai phần – phần thân của vòng lặp và các câu lệnh điều khiển. Mục tiêu chính của vòng lặp là chạy mã nhiều lần. Dart hỗ trợ các loại vòng lặp sau.
- Dart for vòng lặp
- Dart for… trong vòng lặp
- Vòng lặp Dart while
- Dart do-while vòng lặp
Chúng tôi mô tả một giới thiệu ngắn gọn về các vòng phi tiêu như sau.
Vòng lặp For
Vòng lặp for được sử dụng khi chúng ta biết một khối mã sẽ thực thi bao nhiêu lần. Nó khá giống với vòng lặp C for . Cú pháp được đưa ra dưới đây.
Cú pháp –
- for (Khởi tạo; điều kiện; incr / decr) {
- // nội dung vòng lặp
- }
Việc lặp lại vòng lặp bắt đầu từ giá trị ban đầu. Nó chỉ thực thi một lần.
Điều kiện là một biểu thức kiểm tra và nó được kiểm tra sau mỗi lần lặp. Vòng lặp for sẽ thực thi cho đến khi trả về false theo điều kiện đã cho.
Incr / decr là bộ đếm để tăng hoặc giảm giá trị.
Hãy hiểu ví dụ sau.
Ví dụ –
void main () { int num = 1 ; for (num; num <= 10 ; num ++) // vòng lặp for để in 1-10 số { print (num); // để in số } }
for… in Loop
Vòng lặp for… in hơi khác so với vòng lặp for. Nó chỉ lấy đối tượng hoặc biểu thức dart làm trình lặp và lặp lại từng phần tử một. Giá trị của phần tử được liên kết với var, là và hợp lệ và có sẵn cho phần thân của vòng lặp. Vòng lặp sẽ thực thi cho đến khi không còn phần tử nào trong trình vòng lặp. Cú pháp được đưa ra dưới đây.
Cú pháp –
- for (var trong biểu thức) {
- //các câu lệnh)
- }
Ví dụ :
void main () { var list1 = [ 10 , 20 , 30 , 40 , 50 ]; for (var i in list1) //for..in để in phần tử danh sách { print (i); // để in số } }
Vòng lặp While
Vòng lặp while thực thi một khối mã cho đến khi biểu thức đã cho là sai. Nó có lợi hơn khi chúng ta không biết số lần thực hiện. Cú pháp được đưa ra dưới đây.
Cú pháp:
- while (điều kiện) {
- // nội dung vòng lặp
- }
Hãy hiểu ví dụ sau.
Ví dụ –
void main () { var a = 1 ; var maxnum = 10 ; while (a <maxnum) { // nó sẽ in cho đến khi biểu thức trả về false print (a); a = a + 1 ; // tăng giá trị 1 sau mỗi lần lặp } }
Vòng lặp do… while
Vòng lặp do… while tương tự như vòng lặp while nhưng chỉ khác ở chỗ, nó thực hiện câu lệnh lặp và sau đó kiểm tra điều kiện đã cho. Cú pháp được đưa ra dưới đây.
Cú pháp –
- do{
- // nội dung vòng lặp
- } while (điều kiện);
Ví dụ –
void main () { var a = 1 ; var maxnum = 10 ; do { print ( "Giá trị là: ${a}" ); a = a + 1 ; } while (a <maxnum); }
Lựa chọn vòng lặp
Việc lựa chọn một vòng lặp là một nhiệm vụ hơi khó khăn đối với lập trình viên. Thật khó để quyết định vòng lặp nào sẽ phù hợp hơn để thực hiện một nhiệm vụ cụ thể. Chúng ta có thể xác định vòng lặp dựa trên các điểm sau.
- Phân tích vấn đề và quan sát xem bạn cần vòng lặp trước hay vòng lặp sau thử nghiệm. Vòng lặp kiểm tra trước là điều kiện được kiểm tra trước khi vào vòng lặp. Trong vòng lặp sau kiểm tra, điều kiện được kiểm tra sau khi vào vòng lặp.
- Nếu chúng ta yêu cầu một vòng lặp kiểm tra trước, thì hãy chọn vòng lặp while hoặc for.
- Nếu chúng ta yêu cầu một vòng lặp sau kiểm tra, thì hãy chọn vòng lặp do-while.
Vòng lặp lồng nhau
Vòng lặp for lồng nhau có nghĩa là “vòng lặp for bên trong vòng lặp for khác”. Vòng lặp for bên trong một vòng lặp khác được gọi là vòng lặp bên trong và vòng lặp bên ngoài được gọi là vòng lặp ngoài. Trong mỗi lần lặp của vòng lặp bên ngoài, vòng lặp bên trong sẽ lặp lại toàn bộ chu kỳ của nó. Hãy hiểu ví dụ sau về vòng lặp for lồng nhau.
Ví dụ –
void main () { int i, j; int table_no = 2 ; int max_no = 10 ; for (i = 1 ; i <= table_no; i ++) { // vòng lặp ngoài for (j = 0 ; j <= max_no; j ++) { // vòng lặp bên trong print ( "${i} * ${j} = ${i * j}" ); // print ("\ n"); / * dòng trống giữa các bảng * / }} }
Hãy hiểu hoạt động của vòng lặp for lồng nhau.
Ví dụ – 2 Hiểu chu trình vòng lặp bên trong
void main () { for ( int i = 1 ; i <= 5 ; i ++) { print ( "Lặp vòng lặp ngoài: ${i}" ); for ( int j = 1 ; j <= i; ++ j) { print ( "i = ${i} j = ${j}" ); } } }
Quan sát đoạn mã trên, chúng ta đã xác định được hoạt động của vòng lặp bên trong. Vòng lặp bên trong sẽ được lặp lại cho mỗi lần lặp của vòng lặp bên ngoài.
Toán tử lôgic Vòng lặp while
Đôi khi chúng ta cần kiểm tra nhiều điều kiện trong một vòng lặp while. Chúng ta có thể làm điều này bằng cách sử dụng các toán tử logic như (||, &&, và!). Chúng ta hãy xem các khái niệm sau đây.
- while (n1 <5 && n2> 10) – Nó sẽ thực thi nếu cả hai điều kiện đều đúng.
- while (n1 <5 || n2> 10) – Nó sẽ thực thi nếu một trong các điều kiện là đúng.
- while (! n1 = 10) – Nó sẽ thực thi nếu n1 không bằng 10.
Hãy xem xét ví dụ sau.
Ví dụ –
void main () { int n1 = 1 ; int n2 = 1 ; // Chúng tôi đang kiểm tra nhiều điều kiện bằng cách sử dụng các toán tử logic. while (n1 <= 4 && n2 <= 3 ) { print ( "n1: ${n1}, n2: ${n2}" ); n1 ++; n2 ++; } }
Giải trình:
Trong đoạn mã trên, chúng ta đã gán hai biến n1 và n2 với giá trị 1 trong cả hai. Bây giờ chúng ta đã kiểm tra nhiều điều kiện trong vòng lặp while trong đó n1 nhỏ hơn hoặc bằng 4 và n2 nhỏ hơn hoặc bằng 3.
Trong lần lặp đầu tiên, nó đã kiểm tra cả hai giá trị và in kết quả. Tại một thời điểm, khi giá trị của n1 và n2 bằng 4. n1 thỏa mãn điều kiện 1 nhưng n2 không thỏa mãn điều kiện thứ 2 nên vòng lặp kết thúc và in kết quả ra màn hình.