Giáo trình Java cơ bản - Chương 3: Cấu trúc điều khiển

pdf 27 trang huongle 3310
Bạn đang xem 20 trang mẫu của tài liệu "Giáo trình Java cơ bản - Chương 3: Cấu trúc điều khiển", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • pdfgiao_trinh_java_co_ban_chuong_3_cau_truc_dieu_khien.pdf

Nội dung text: Giáo trình Java cơ bản - Chương 3: Cấu trúc điều khiển

  1. Chương 3 Cấu trúc điều khiển
  2. 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
  3. Lệnh if o Cú pháp: if ( ) { [câu lệnh 1]; [câu lệnh 2]; }
  4. 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”); • } }
  5. 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”); • } }
  6. Lệnh if else o Cú pháp:
  7. 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”); • } }
  8. 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" ); • } }
  9. 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" ); • } }
  10. 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.
  11. Lưu ý với lệnh if else o Nhiều lệnh IF lồng vào nhau:
  12. 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”); } }
  13. 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
  14. Lệnh switch case
  15. 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; } }
  16. So sánh lệnh if else và switch case public static void main(String[] args) { public static void main(String[] int gioitinh = 1; args) { switch (gioitinh) { int gioitinh = 1; case 0: if (gioitinh == 0) System.out.println(“Bé trai”); System.out.println(“Bé trai”); break; else if case 1: System.out.println(“Bé gái”); System.out.println(“Bé gái”); else break; System.out.println(“Chưa xác default: định”); System.out.println(“Chưa xác } định”); break; } }
  17. So sánh lệnh if else và switch case • if-else • swich-case . Mỗi if có biểu thức luận . Mỗi case liên quan trở lại lý bên trong để định giá với giá trị ban đầu của trị là đúng hoặc sai biểu thức trong câu lệnh . Các biến trong biểu thức switch có thể định giá trị của bất . Biểu thức phải định giá trị kỳ kiểu giá trị nào là kiểu byte, short, char, . Chỉ một khối lệnh được int thực thi . Nếu câu lệnh break bị bỏ qua có nhiều khối lệnh được thực hiện
  18. 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.
  19. 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); }
  20. Lệnh lặp do while o Cú pháp
  21. 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); }
  22. So sánh while/for và do-while • while/for • do-while . Vòng lặp được kiểm tra . Vòng lặp được kiểm tra đầu tiên. Điều kiện được sau. Điều kiện được kiểm kiểm tra trước khi các câu tra sau khi câu lệnh trong lệnh trong phạm vi vòng phạm vi vòng lặp được lặp được thực thi. thực thi. . Vòng lặp không được . Vòng lặp được thực thi ít thực thi nếu điều kiện nhất một lần thậm chí nếu không được thỏa mãn tại điều kiện không thỏa mãn điểm bắt đầu tại điểm bắt đầu
  23. Lệnh lặp for o Cú pháp: for( ; ;tăng/giảm){ //Khối lệnh }
  24. 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); } }
  25. 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.
  26. 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.
  27. 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; } }