0

Java SE 8 Oracle Certified Associate 1Z0-808 - #10

1. Câu hỏi

2. Phân tích

Đây là 1 kiến thức hết sức thú vị, mình đã làm Java nhiều năm nhưng không để ý. Thông thường khi viết switch-case, mình luôn viết đầy đủ break; , và thường cho default ở cuối command
Mọi thứ chạy ổn định và mình không đi sâu vào nghiên cứu, khi làm bài này đã làm sai, sau khi đọc java docs kỹ thì mình đã hiểu rõ bản chất vấn đề. Đây là phần cần lưu ý trong docs

The break statements are necessary because without them, statements in switch blocks fall through: All statements after the matching case label are executed in sequence, regardless of the expression of subsequent case labels, until a break statement is encountered. 

Khi không có break, tất cả các lệnh sau đó sẽ được chạy tuần tự, không quan tâm giá trị có match vơi giá trị trong switch condition không.

         String fruit = "mango";
         switch (fruit) {
             default:
                 System.out.println("ANY FRUIT WILL DO");
             case "Apple":
                 System.out.println("APPLE");
             case "Mango":
                 System.out.println("MANGO");
             case "Banana":
                 System.out.println("BANANA");
                 break;
         }

Trong trường hợp này, vì default được cho lên đầu, nó sẽ in ra

ANY FRUIT WILL DO

Do không có lệnh break, nó sẽ tiếp tục chạy và in ra

APPLE
MANGO
BANANA

Đáp án: image.png

3. Kết luận

Bạn có thể gõ code vào IDE để chạy lại và kiểm tra Source cho câu hỏi


All rights reserved

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí