Điều khiển rẽ nhánh:
Mệnh đề if-else
Mệnh đề switch-case
Vòng lặp (Loops):
Vòng lặp while
Vòng lặp do-while
Vòng lặp for
Cấu trúc lệnh nhảy:
Lệnh break
Lệnh continue
Nhãn (lable)
Lệnh goto
27 trang |
Chia sẻ: thuychi16 | Lượt xem: 985 | Lượt tải: 0
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 3Cấu trúc điều khiểnĐiều khiển rẽ nhánh: Mệnh đề if-elseMệnh đề switch-caseVòng lặp (Loops):Vòng lặp whileVòng lặp do-whileVòng lặp forCấu trúc lệnh nhảy:Lệnh breakLệnh continueNhãn (lable)Lệnh gotoChương 3: Cấu trúc điều khiểnLệnh ifCú pháp:if (){ [câu lệnh 1]; [câu lệnh 2]; }Lệnh ifpublic 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 ifimport 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 elseCú pháp:Lệnh if elsepublic 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 elseimport 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 .. elseimport 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 .. elseThêm ; ở cuối mệnh đề if hoặc elseLỗ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 .. elseNhiều lệnh IF lồng vào nhau:Lưu ý với lệnh if .. elseMệ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 caseCấu trúc lệnh switch tương tự các cặp lệnh if – else liên tiếp nhauLệnh switch caseLệnh switch casepublic 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 casepublic 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 caseif-elseMỗi if có biểu thức luận lý bên trong để định giá trị là đúng hoặc saiCác biến trong biểu thức có thể định giá trị của bất kỳ kiểu giá trị nàoChỉ một khối lệnh được thực thi swich-caseMỗ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 switchBiểu thức phải định giá trị là kiểu byte, short, char, intNếu câu lệnh break bị bỏ qua có nhiều khối lệnh được thực hiệnLệnh lặp whileCú phápLư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 100public static void main(String[] args) { int tong = 0, i = 1; while (i;;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 100public class TestFor{ public static void main(String[] args){ int tong = 0; for(int i=1; i đú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”.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; } }