Đây thực sự là câu trả lời cho nhận xét của seanizer về câu trả lời của org.life.java, nhưng tôi muốn nhập một số mã nên không thể sử dụng tính năng nhận xét.
Mặc dù rất hiếm khi tôi tìm thấy cách sử dụng cho "break label", nhưng nó vẫn xảy ra một cách ngẫu nhiên. Trường hợp phổ biến nhất là khi tôi đang tìm kiếm thứ gì đó nằm trong cấu trúc yêu cầu một vòng lặp lồng nhau để tìm kiếm, như:
search:
for (State state : stateList)
{
for (City city : state.cityList)
{
if (city.zipcode.equals(wantZip))
{
doSomethingTo(city);
break search;
}
}
}
Thông thường trong những trường hợp như vậy, tôi đẩy toàn bộ nội dung vào một chương trình con để khi có một lần truy cập, tôi có thể trả về đối tượng đã tìm thấy và nếu nó rơi ra cuối vòng lặp, tôi có thể trả về null để cho biết không tìm thấy hoặc có thể ném một ngoại lệ. Nhưng điều này đôi khi hữu ích.
Thành thật mà nói, tôi nghĩ những người phát minh ra Java đã bao gồm tính năng này vì giữa tính năng này và việc xử lý ngoại lệ, họ đã loại bỏ hai cách sử dụng hợp pháp cuối cùng cho GOTO.
Phụ lục rất muộn:
Tôi đã thấy một dòng mã tuyệt vời một lần. Lập trình viên đã viết:
http://www.example.com/xyz.jsp
for (Foo foo1 : foolist)
Anh ấy không thực sự nói "example.com" mà là trang web của công ty chúng tôi.
Nó tạo ấn tượng rằng có một URL trong mã. Nó biên dịch thành công, giống như nó làm một cái gì đó. Nhưng ... nó làm được gì?
Trong thực tế, nó không làm gì cả. "http:" là nhãn mà anh ấy không bao giờ tham chiếu. Sau đó, "//" làm cho phần còn lại của dòng trở thành một nhận xét.