TESTEKVN - KIỂM THỬ THỰC CHIẾN Contact: Vincent - 083.286.8822 Email:
[email protected] Cấu trúc điều khiển if - else trong Java Tất cả các ngôn ngữ lập trình đều hỗ trợ các cấu trúc điều khiển tương tự nhau. Để làm quen với các cấu trúc điều khiển lập trình trong Java, trước hết các bạn cần hiểu qua về khái niệm khối lệnh: Khối lệnh (block) là một tập hợp các lệnh nằm trong một cặp dấu ngoặc nhọn (bắt đầu bởi dấu { và kết thúc bởi dấu }). Các khối lệnh có thể lồng nhau, tức là một khối lệnh có thể nằm bên trong một khối lệnh khác. 1. Cấu trúc điều khiển if - else. Cấu trúc điều khiển if - else sẽ kiểm tra kết quả của 1 điều kiện và dựa vào kết quả đó để thực hiện các hành động tương ứng. và có 04 cấu trúc chính như sau: Cấu trúc if khuyết else. /** * Cấu trúc này sẽ chỉ có 1 điều kiện * if(dieu kien 1){ * // hanh dong 1 * } * / hanh dong 2 */ Trong đó điều kiện là 1 biểu thức nào đó bao gồm các biểu thức toán học (so sánh, ...). Nếu biểu thức điều kiện đó trả về kết quả là đúng (true) thì hành động tương ứng nằm bên trong khối lệnh sẽ được thực hiện, còn nếu biểu thức điều kiện đó trả về kết quả là sai (false) thì sẽ kết thúc câu lệnh điều khiển và một số câu lệnh khác sẽ được thi hành. Ví dụ: // Ví dụ so sanh 2 so int firstNum = 10, secondNum = 30; if (firstNum < secondNum){ System.out.println("The first number is less than the second number"); } System.out.println("Complete"); Cấu trúc if - else đầy đủ. /** * Cấu trúc if - else đầy đủ * * if (điều kiên 1) { * // hành động 1 * } else { * // hành động 2 * } * // Lệnh kế tiếp */ Tại cấu trúc này, việc thực hiện của chương trình sẽ rẽ thành hai nhánh tùy theo kết quả của biểu thức điều kiện. Nếu biểu thức điều kiện trả về kết quả đúng thì các lệnh trong khối lệnh của lệnh if được thực hiện; ngược lại thì những lệnh trong khối lệnh của lệnh else được thực hiện. Ví dụ: firstNum = 10; if (firstNum % 2 == 0) { System.out.println("So chan"); } else { System.out.println("So le"); }
TESTEKVN - KIỂM THỬ THỰC CHIẾN Contact: Vincent - 083.286.8822 Email:
[email protected] Cấu trúc điều khiển if - else if - else. Cấu trúc điều khiển if - else if - else là một tập hợp các câu lệnh if, else if và else được dùng để giải quyết những yêu cầu phức tạp mà chương trình đề ra. /** * Cấu trúc điều khiển if - else if * * if (điều kiên 1) { * // hành động 1 * } else if (điều kiện 2) { * // hành động 2 * } else if (điều kiện 3) { * // hành động 3 * } ... else { * // hành động n * } * // Lệnh kế tiếp */ Việc thực hiện của chương trình sẽ rẽ thành nhiều nhánh tùy theo kết quả của biểu thức điều kiện. Nếu biểu thức điều kiện trả về kết quả đúng thì các lệnh trong khối lệnh của lệnh if được thực hiện, nếu không thì các lệnh trong khối lệnh của lệnh else if được thực hiện. Và nếu tất cả các kết quả biểu thức điều kiện của if và else if đều không đúng thì câu lệnh trong else sẽ được thực thi. Ví dụ: int gpa = 7; if (gpa < 5) { System.out.println("Trung Binh"); } else if (gpa < 8) { System.out.println("Khá"); } else if (gpa < 10) { System.out.println("Giỏi"); } else if (gpa == 10) { System.out.println("Xuất sắc"); } else{ System.out.println("Không có thông tin xếp loại"); } 2. Cấu trúc switch - case Cấu trúc rẽ nhánh switch - case cho phép bạn lựa chọn một trong nhiều phương án có khả năng xảy ra, nó có thể dùng dể thay thế cho cấu trúc điều khiển if - else if - else. Vậy khi nào chúng ta nên sử dụng cấu trúc rẽ nhánh switch - case thay thế cho cấu trúc điều khiển if - else if - else? Khi mà chúng ta có số trường hợp cần xử lý lớn hơn 3 hoặc các giá trị là hằng số thì khi đó chúng ta nên sử dụng switch - case để dễ dàng kiểm tra và xử lý, giúp cho chương trình dễ quan sát hơn. /** * switch (biểu_thức) { * case giá_trị_1: * Lệnh 1; * break; * case giá_trị_2: * Lệnh 2; * break; * ... * case giá_trị_n: * Lệnh n; * break;
TESTEKVN - KIỂM THỬ THỰC CHIẾN Contact: Vincent - 083.286.8822 Email:
[email protected] * [default: Lệnh 0;] * } */ Trong đó: Biểu_thức phải trả về kết quả là một số nguyên, chuỗi hoặc một ký tự. Giá_trị_1, giá_trị_2,..., giá_trị_n là các biểu thức hằng, nguyên hoặc ký tự và chúng phải khác nhau. Lệnh 1, Lệnh 2, ..., Lệnh n, Lệnh 0 là các lệnh trong thân của switch. Các bạn thấy sau mỗi lệnh này chúng ta có từ khóa break;, từ khóa này có thể có hoặc không có tùy theo từng trường hợp. Cách thức hoạt động của switch - case như sau: Đầu tiên, chương trình sẽ so sánh giá trị của biểu_thức với các giá trị từ giá_trị_1, giá_trị_2,..., giá_trị_n. Nếu trong các giá trị từ giá_trị_1, giá_trị_2,..., giá_trị_n có giá trị nào bằng với giá trị của biểu_thức thì chương trình sẽ bắt đầu thực hiện các lệnh tương ứng nằm trong case của giá trị đó cho đến khi gặp một lệnh break đầu tiên thì thoát ngay khỏi switch, bỏ qua các case (trường hợp) còn lại và thực hiện lệnh đầu tiên nằm ngay sau cấu trúc này. Nếu giá trị của biểu_thức không bằng với bất kỳ giá trị nào trong danh sách giá_trị_1, giá_trị_2 ... giá_trị_n thì Lệnh 0 sẽ được thực hiện nếu có thành phần default. Dạng 1 là cấu trúc switch có sử dụng từ khóa default, còn dạng 2 là cấu trúc switch không sử dụng từ khóa default. Lưu ý: ● Lệnh break là để nhảy ra khỏi lệnh switch, nếu không có lệnh này cấu trúc switch sẽ duyệt cả các trường hợp phía dưới cho đến khi gặp dấu đóng switch (dấu }) (vì chưa gặp break coi như chưa ra khỏi lệnh switch). ● Khi sử dụng lệnh switch có thể xảy ra nhiều giá trị trả về cho một trường hợp (một khả năng xảy ra của biểu thức).