Tôi đang duyệt qua một số đối tượng Java cơ sở khi tôi tìm thấy một đoạn mã được bao quanh bởi khối scan: {}
. Đoạn mã sau là từ phương thức toLowerCase() bên trong lớp String.Khối tuyên bố được gắn nhãn trong Java?
scan: {
for (firstUpper = 0 ; firstUpper < len;) {
char c = value[firstUpper];
if ((c >= Character.MIN_HIGH_SURROGATE)
&& (c <= Character.MAX_HIGH_SURROGATE)) {
int supplChar = codePointAt(firstUpper);
if (supplChar != Character.toLowerCase(supplChar)) {
break scan;
}
firstUpper += Character.charCount(supplChar);
} else {
if (c != Character.toLowerCase(c)) {
break scan;
}
firstUpper++;
}
}
return this;
}
Có thể ai đó vui lòng giải thích khối scan:{}
được sử dụng và nơi cú pháp này xuất phát từ đâu? Tôi chưa thấy dấu hai chấm sau một từ như thế này trong Java trừ khi được sử dụng trong toán tử bậc ba.
Cảm ơn!
Chỉnh sửa: Cập nhật tiêu đề để khớp chính xác với câu hỏi được trả lời.
Thực tế này có bị hủy bỏ như goto không? – Daniel
@ Daniel: Tôi không muốn bắt đầu bất kỳ cuộc tranh luận tôn giáo nào. ;) Tuy nhiên, vì hình thức này có thể được coi là "có cấu trúc" hơn là một 'goto' thô, tôi sẽ tưởng tượng một số người ủng hộ 'goto' có thể coi nó ít phản đối. – NPE
@ Không, bởi vì bạn không thể sử dụng nó để tự ý nhảy xung quanh trong mã. Nó hữu ích với 'break' trong vòng lặp lồng nhau để xác định vòng lặp nào cần thoát ra. – Alex