Tôi đã nhìn thấy từ khóa này lần đầu tiên và tôi đã tự hỏi nếu ai đó có thể giải thích cho tôi những gì nó làm.
- Là gì
continue
từ khoá? - Làm thế nào nó hoạt động?
- Khi nào nó được sử dụng?
Tôi đã nhìn thấy từ khóa này lần đầu tiên và tôi đã tự hỏi nếu ai đó có thể giải thích cho tôi những gì nó làm.
continue
từ khoá?Câu trả lời:
Một continue
câu lệnh không có nhãn sẽ thực hiện lại từ điều kiện trong cùng while
hoặc do
vòng lặp và từ biểu thức cập nhật của for
vòng lặp trong cùng . Nó thường được sử dụng để chấm dứt sớm quá trình xử lý của vòng lặp và do đó tránh các if
câu lệnh lồng nhau sâu sắc . Trong ví dụ sau continue
sẽ nhận được dòng tiếp theo, mà không xử lý câu lệnh sau trong vòng lặp.
while (getNext(line)) {
if (line.isEmpty() || line.isComment())
continue;
// More code here
}
Với một nhãn, continue
sẽ thực hiện lại từ vòng lặp với nhãn tương ứng, thay vì vòng lặp trong cùng. Điều này có thể được sử dụng để thoát khỏi các vòng lặp lồng sâu, hoặc đơn giản là cho rõ ràng.
Đôi khi continue
cũng được sử dụng như một trình giữ chỗ để làm cho một vòng lặp trống rõ ràng hơn.
for (count = 0; foo.moreData(); count++)
continue;
Tuyên bố tương tự không có nhãn cũng tồn tại trong C và C ++. Tương đương trong Perl là next
.
Loại luồng điều khiển này không được khuyến nghị, nhưng nếu bạn chọn, bạn cũng có thể sử dụng continue
để mô phỏng một dạng hạn chế goto
. Trong ví dụ sau đây continue
sẽ thực hiện lại for (;;)
vòng lặp trống .
aLoopName: for (;;) {
// ...
while (someCondition)
// ...
if (otherCondition)
continue aLoopName;
continue
là loại thích goto
. Bạn có quen thuộc break
không? Ngược lại, dễ nghĩ về chúng hơn:
break
chấm dứt vòng lặp (nhảy đến mã bên dưới nó).
continue
chấm dứt phần còn lại của quá trình xử lý mã trong vòng lặp cho lần lặp hiện tại, nhưng vẫn tiếp tục vòng lặp.
Nếu bạn nghĩ rằng cơ thể của một vòng lặp như là một chương trình con, continue
là loại như thế return
. Cùng một từ khóa tồn tại trong C và phục vụ cùng một mục đích. Đây là một ví dụ giả định:
for(int i=0; i < 10; ++i) {
if (i % 2 == 0) {
continue;
}
System.out.println(i);
}
Điều này sẽ chỉ in ra các số lẻ.
Nói chung, tôi thấy continue
(và break
) như một cảnh báo rằng mã có thể sử dụng một số phép tái cấu trúc, đặc biệt là nếu khai báo vòng lặp while
hoặc for
không ngay lập tức xuất hiện. Điều này cũng đúng vớireturn
ở giữa một phương thức, nhưng vì một lý do hơi khác.
Như những người khác đã nói, continue
di chuyển đến lần lặp tiếp theo của vòng lặp, trong khibreak
di chuyển ra khỏi vòng lặp kèm theo.
Đây có thể là các khung thời gian bảo trì vì không có liên kết ngay lập tức giữa continue
/ break
và vòng lặp mà nó đang tiếp tục / phá vỡ ngoài ngữ cảnh; thêm một vòng lặp bên trong hoặc di chuyển "ruột" của vòng lặp thành một phương thức riêng biệt và bạn có một hiệu ứng ẩn của continue
/ break
failing.
IMHO, tốt nhất là sử dụng chúng như một biện pháp cuối cùng, và sau đó để đảm bảo rằng việc sử dụng chúng được nhóm lại chặt chẽ ở đầu hoặc cuối vòng lặp để nhà phát triển tiếp theo có thể thấy "giới hạn" của vòng lặp trong một màn hình .
continue
, break
và return
(ngoài Trả về một lần thực ở cuối phương thức của bạn), tất cả đều thuộc danh mục chung của "GOTO ẩn". Họ đặt vòng lặp và điều khiển chức năng ở những nơi không mong muốn, cuối cùng gây ra lỗi.
"continue" trong Java có nghĩa là đi đến cuối vòng lặp hiện tại, có nghĩa là: nếu trình biên dịch thấy tiếp tục trong một vòng lặp, nó sẽ đi đến lần lặp tiếp theo
Ví dụ: Đây là mã để in các số lẻ từ 1 đến 10
trình biên dịch sẽ bỏ qua mã in bất cứ khi nào nó thấy tiếp tục chuyển sang lần lặp tiếp theo
for (int i = 0; i < 10; i++) {
if (i%2 == 0) continue;
System.out.println(i+"");
}
Như đã đề cập continue
sẽ bỏ qua việc xử lý mã bên dưới nó và cho đến khi kết thúc vòng lặp. Sau đó, bạn được chuyển đến điều kiện của vòng lặp và chạy lần lặp tiếp theo nếu điều kiện này vẫn giữ (hoặc nếu có cờ, với điều kiện của vòng lặp được ký hiệu).
Cần phải nhấn mạnh rằng trong trường hợp do - while
bạn được chuyển đến điều kiện ở phía dưới sau a continue
, không phải ở đầu vòng lặp.
Đây là lý do tại sao nhiều người không trả lời chính xác những gì đoạn mã sau sẽ tạo ra.
Random r = new Random();
Set<Integer> aSet= new HashSet<Integer>();
int anInt;
do {
anInt = r.nextInt(10);
if (anInt % 2 == 0)
continue;
System.out.println(anInt);
} while (aSet.add(anInt));
System.out.println(aSet);
* Nếu câu trả lời của bạn là aSet
sẽ chỉ chứa số lẻ 100% ... bạn đã nhầm!
Tiếp tục là một từ khóa trong Java và nó được sử dụng để bỏ qua lần lặp hiện tại.
Giả sử bạn muốn in tất cả các số lẻ từ 1 đến 100
public class Main {
public static void main(String args[]) {
//Program to print all odd numbers from 1 to 100
for(int i=1 ; i<=100 ; i++) {
if(i % 2 == 0) {
continue;
}
System.out.println(i);
}
}
}
Câu lệnh tiếp tục trong chương trình trên chỉ đơn giản bỏ qua phép lặp khi tôi chẵn và in giá trị của i khi nó là số lẻ.
Câu lệnh tiếp tục chỉ đơn giản là đưa bạn ra khỏi vòng lặp mà không thực hiện các câu lệnh còn lại bên trong vòng lặp và kích hoạt lần lặp tiếp theo.
Xem xét một điều kiện Nếu khác. Một câu lệnh tiếp tục thực thi những gì có trong một điều kiện và thoát khỏi điều kiện tức là nhảy sang lần lặp hoặc điều kiện tiếp theo. Nhưng một Break rời khỏi vòng lặp. Hãy xem xét chương trình sau đây. '
public class ContinueBreak {
public static void main(String[] args) {
String[] table={"aa","bb","cc","dd"};
for(String ss:table){
if("bb".equals(ss)){
continue;
}
System.out.println(ss);
if("cc".equals(ss)){
break;
}
}
System.out.println("Out of the loop.");
}
}
Nó sẽ in: aa cc Ra khỏi vòng lặp.
Nếu bạn sử dụng break ở vị trí tiếp tục (Sau if.), Nó sẽ chỉ in aa và ra khỏi vòng lặp .
Nếu điều kiện "bb" bằng ss được thỏa mãn: Tiếp tục: Nó chuyển sang lần lặp tiếp theo tức là "cc" .equals (ss). Đối với Break: Nó đi ra khỏi vòng lặp và in "Out of the loop".
break
Tôi đến bữa tiệc muộn một chút, nhưng ...
Điều đáng nói continue
là hữu ích cho các vòng lặp trống trong đó tất cả các công việc được thực hiện trong biểu thức điều kiện kiểm soát vòng lặp. Ví dụ:
while ((buffer[i++] = readChar()) >= 0)
continue;
Trong trường hợp này, tất cả công việc đọc một ký tự và nối thêm nó vào buffer
được thực hiện trong biểu thức điều khiển while
vòng lặp. Câu continue
lệnh đóng vai trò là một chỉ báo trực quan rằng vòng lặp không cần cơ thể.
Rõ ràng hơn một chút so với tương đương:
while (...)
{ }
và chắc chắn là phong cách mã hóa tốt hơn (và an toàn hơn) so với sử dụng một câu lệnh trống như:
while (...)
;
while
trở thành nội dung của while
mệnh đề và không rõ ràng về mặt trực quan. Một điều rõ ràng continue
là hiển nhiên và truyền đạt một ý định mà một tuyên bố trống rỗng không có.
Về cơ bản trong java, tiếp tục là một tuyên bố. Vì vậy, câu lệnh continue thường được sử dụng với các vòng lặp để bỏ qua bước lặp hiện tại.
Để biết làm thế nào và khi nào nó được sử dụng trong java, hãy tham khảo liên kết dưới đây. Nó đã có lời giải thích với ví dụ.
https://www.flowerbrackets.com/continue-java-example/
Hy vọng nó giúp !!
continue
phải ở trong một vòng lặp Nếu không nó hiển thị Lỗi bên dưới:
Tiếp tục bên ngoài vòng lặp
Câu lệnh continue được sử dụng trong cấu trúc điều khiển vòng lặp khi bạn cần chuyển sang lần lặp tiếp theo của vòng lặp ngay lập tức.
Nó có thể được sử dụng với vòng lặp for hoặc vòng lặp while. Câu lệnh tiếp tục Java được sử dụng để tiếp tục vòng lặp. Nó tiếp tục luồng hiện tại của chương trình và bỏ qua mã còn lại ở điều kiện đã chỉ định.
Trong trường hợp của một vòng lặp bên trong, nó chỉ tiếp tục vòng lặp bên trong.
Chúng ta có thể sử dụng câu lệnh continue của Java trong tất cả các loại vòng lặp như vòng lặp for, vòng lặp while và vòng lặp do-while.
ví dụ
class Example{
public static void main(String args[]){
System.out.println("Start");
for(int i=0; i<10; i++){
if(i==5){continue;}
System.out.println("i : "+i);
}
System.out.println("End.");
}
}
đầu ra:
Start
i : 0
i : 1
i : 2
i : 3
i : 4
i : 6
i : 7
i : 8
i : 9
End.
[số 5 được bỏ qua]