Khi dòng mã là như thế này:Một số cách tốt hơn để tránh làm gì trong khi (sai); hack trong Java?
if(check())
{
...
...
if(check())
{
...
...
if(check())
{
...
...
}
}
}
tôi đã thường thấy công việc này xung quanh để tránh dòng chảy này mã lộn xộn:
do {
if(!check()) break;
...
...
if(!check()) break;
...
...
if(!check()) break;
...
...
} while(false);
một số cách tốt hơn mà tránh workaround này là gì/hack để rằng nó sẽ trở thành mã cấp cao hơn (cấp độ ngành)?
Có thể có các cấu trúc đến từ cộng đồng Apache hoặc Google ổi không?
Lưu ý: đây là bản sao của the same question for C++. Các câu trả lời tốt nhất có các con trỏ hàm thực sự và lệnh GOTO. Cả hai đều không tồn tại trong Java. Tôi háo hức quan tâm đến điều tương tự cho Java.
Đưa nó vào một chức năng mới và sử dụng trả lại là ý kiến của tôi không phải là một giải pháp tốt, bởi vì trả lại thoát khỏi phương pháp. Vì vậy, nếu lớp của tôi có 20 phương pháp với các cấu trúc này, tôi sẽ phải thêm 20 phương thức bổ sung để thực hiện việc này. Đó là lý do tại sao GOTO là câu trả lời hay nhất cho C++.
Một số các câu trả lời vẫn giữ - di chuyển nó vào chức năng riêng của nó, và sử dụng trở lại ví dụ. – Sinkingpoint
@MarounMaroun Bởi vì bạn có thể có 20 lần này trong một hàm để vượt qua 20 bước nối tiếp. Nếu tôi làm như thế này, cuối cùng nếu các trang trình bày đã có 20 tab ở bên phải, điều này làm cho mã không thể đọc được. –
Tôi không phải là một người tôn giáo, nhưng tôi thực sự tin rằng "GOTO" không phải là câu trả lời đúng cho bất cứ điều gì liên quan đến Java. – WarrenFaith