Java - Chương 3: Cấu trúc điều khiển

Lệnh break: dùng để thoát khỏi cấu trúc switch, vòng lặp while, do while, for trong cùng chứa nó. o Lệnh continue: dùng để tiếp tục vòng lặp trong cùng chứa nó (ngược với lệnh break). o Nhãn (label): không giống như C/C++, Java không hỗ trợ lệnh goto để nhảy đến 1 vị trí nào đó của chương trình. o Java dùng kết hợp nhãn (label) với từ khóa break và continue để thay thế cho lệnh goto

pdf27 trang | Chia sẻ: nguyenlam99 | Lượt xem: 1063 | Lượt tải: 0download
Bạn đang xem trước 20 trang tài liệu Java - Chương 3: Cấu trúc điều khiển, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Chương 3 Cấu trúc điều khiển o Điều khiển rẽ nhánh:  Mệnh đề if-else  Mệnh đề switch-case o Vòng lặp (Loops):  Vòng lặp while  Vòng lặp do-while  Vòng lặp for o Cấu trúc lệnh nhảy:  Lệnh break  Lệnh continue  Nhãn (lable)  Lệnh goto Chương 3: Cấu trúc điều khiển Lệnh if o Cú pháp: if () { [câu lệnh 1]; [câu lệnh 2]; } Lệnh if public class TestIf { • public static void main( String args[ ] ){ – int van, toan; – van = 8; – toan = 6; – if(((toan+van)/2 > 5) && (toan > 5)) • System.out.println(“Kết quả đậu \n”); • } } Lệnh if import java.util.Date; public class TestIf 2{ • public static void main( String args[ ] ){ • Date today = new Date(); • if( today.getDay() == 0 ) • System.out.println(“Hôm nay là chủ nhật\n”); • } } Lệnh if else o Cú pháp: Lệnh if else public class TestIf { • public static void main( String args[ ] ){ – Int van, toan; – van = 8; – toan = 6; – if(((toan+van)/2 > 5) && (toan > 5)) • System.out.println(“Kết quả đậu \n”); • else • System.out.println(“Kết quả không đậu \n”); • } } Lệnh if else import java.util.Date; public class TestIf 2{ • public static void main( String args[ ] ){ • Date today = new Date(); • if( today.getDay() == 0 ) • System.out.println(“Hôm nay là chủ nhật\n”); • else • System.out.println(“Hôm nay không phải là chủ nhật\n" ); • } } Lệnh if .. else import java.util.Date; public class TestIf { • public static void main( String args[ ] ){ – Date today = new Date(); • if( today.getDay() == 0 ) • System.out.println(“Hôm nay là chủ nhật\n”); • else • System.out.println(“Hôm nay không phải là chủ nhật\n" ); • } } Lỗi với lệnh if .. else o Thêm ; ở cuối mệnh đề if hoặc else o Lỗi này rất khó tìm, vì nó không phải là lỗi biên dịch hay lỗi chạy chương trình, nó là lỗi logic. Lưu ý với lệnh if .. else o Nhiều lệnh IF lồng vào nhau: Lưu ý với lệnh if .. else o Mệnh đề else gắn với mệnh đề if gần nhất trong cùng một khối. VD: public class TestIf3{ • public static void main( String args[ ] ){ int i = 1; int j = 2; int k = 3; if(i > j) if(i > k) System.out.println(“A”); else //của if(i > k) System.out.println(“B”); } } Lệnh switch case o Cấu trúc lệnh switch tương tự các cặp lệnh if – else liên tiếp nhau Lệnh switch case Lệnh switch case public static void main(String[] args) { int a = 0; switch (a) { case 0: System.out.println(“Zero”); break; case 10: System.out.println(“Ten”); case 20: System.out.println(“Twenty”); break; default: System.out.println(“Default”); break; } } So sánh lệnh if else và switch case public static void main(String[] args) { int gioitinh = 1; switch (gioitinh) { case 0: System.out.println(“Bé trai”); break; case 1: System.out.println(“Bé gái”); break; default: System.out.println(“Chưa xác định”); break; } } public static void main(String[] args) { int gioitinh = 1; if (gioitinh == 0) System.out.println(“Bé trai”); else if System.out.println(“Bé gái”); else System.out.println(“Chưa xác định”); } So sánh lệnh if else và switch case • if-else  Mỗi if có biểu thức luận lý bên trong để định giá trị là đúng hoặc sai  Các biến trong biểu thức có thể định giá trị của bất kỳ kiểu giá trị nào  Chỉ một khối lệnh được thực thi • swich-case  Mỗi case liên quan trở lại với giá trị ban đầu của biểu thức trong câu lệnh switch  Biểu thức phải định giá trị là kiểu byte, short, char, int  Nếu câu lệnh break bị bỏ qua có nhiều khối lệnh được thực hiện Lệnh lặp while o Cú pháp o Lưu ý: Không nên sử dụng giá trị kiểu float, double để kiểm tra đẳng thức trong vòng lặp. Lệnh lặp while // Tính tổng các số lẻ từ 1 đến 100 public static void main(String[] args) { • int tong = 0, i = 1; • while (i<=100){ • tong+=i; i+=2; • } • System.out.println(tong); } Lệnh lặp do while o Cú pháp Lệnh lặp do while // Tính tổng các số lẻ từ 1 đến 100 public static void main(String[] args) { • int tong = 0, i=1; • do{ • tong+=i; i+=2; • }while (i<=100); • System.out.println(tong); } So sánh while/for và do-while • while/for  Vòng lặp được kiểm tra đầu tiên. Điều kiện được kiểm tra trước khi các câu lệnh trong phạm vi vòng lặp được thực thi.  Vòng lặp không được thực thi nếu điều kiện không được thỏa mãn tại điểm bắt đầu • do-while  Vòng lặp được kiểm tra sau. Điều kiện được kiểm tra sau khi câu lệnh trong phạm vi vòng lặp được thực thi.  Vòng lặp được thực thi ít nhất một lần thậm chí nếu điều kiện không thỏa mãn tại điểm bắt đầu Lệnh lặp for o Cú pháp: for(;;tăng/giảm){ //Khối lệnh } Lệnh lặp for // Chương trình tính tổng các số lẻ từ 1 đến 100 public class TestFor{ public static void main(String[] args){ int tong = 0; for(int i=1; i<=100; i+=2) tong+=i; System.out.println(tong); } } Lưu ý sử dụng vòng lặp o While, do while, for tương đương nhau o for:  Sử dụng khi biết trước số lần lặp.  Ví dụ: in ra một thông báo 100 lần. o while:  Sử dụng khi không biết trước số lần lặp.  Ví dụ: đọc vào các số đến khi gặp số 0. o do while:  Sử dụng thay lệnh WHILE khi thân vòng lặp được thực hiện ít nhất 1 lần. Cấu trúc lệnh nhảy o Lệnh break: dùng để thoát khỏi cấu trúc switch, vòng lặp while, do while, for trong cùng chứa nó. o Lệnh continue: dùng để tiếp tục vòng lặp trong cùng chứa nó (ngược với lệnh break). o Nhãn (label): không giống như C/C++, Java không hỗ trợ lệnh goto để nhảy đến 1 vị trí nào đó của chương trình. o Java dùng kết hợp nhãn (label) với từ khóa break và continue để thay thế cho lệnh goto. Cấu trúc lệnh nhảy o Lệnh“label:” xác định vị trí của nhãn và xem như tên của vòng lặp ngoài. o Nếu đúng thì lệnh break label sẽ thực hiện việc nhảy ra khỏi vòng lặp có nhãn là“label”. o Ngược lại sẽ tiếp tục vòng lặp có nhãn “label”. label: for (){ for (){ if () break label; else continue label; } }

Các file đính kèm theo tài liệu này:

  • pdfjava_chuong_3_cau_truc_dieu_khien_0814.pdf