1, Lệnh break:
Trong cấu trúc switch chúng ta dùng câu lệnh break để thoát thỏi cấu trúc switch trong cùng chứa nó. Tương tự như vậy, trong cấu trúc lặp, câu lệnh break dùng để thoát khỏi cấu trúc lặp trong cùng chứa nó.
Trong thực tế, đặc biệt là các bài tìm kiếm, sẽ dùng break để thoát vòng lặp khi chúng ta đã tìm thấy kết quả, tránh việc lặp tới tận cùng của vòng lặp, gây lãng phí tài nguyên, vì thế giúp chương trình chạy nhanh hơn!
Ví dụ 1 : Tìm kiếm số thứ tự của phần tử có giá trị là 10 trong 1 mảng các số nguyên:
PHP:public class JavaDemoAndroidVn {
public static void main(String[] args) {
//Vd1 break
int arrInt[] = {1, 2, 5, 0, 10, 200, 20, 35, 29};
for (int i = 0; i <= 8; i++) {
if (arrInt[i] == 10) {
System.out.println("Tìm thấy số 10 có thứ tự trong mảng là: " + i);
break;
}
}
}
}
2, Lệnh continue:
Hiểu đơn giản, chúng ta thường dùng continue để bỏ qua vòng lặp hiện tại khi gặp điều kiện nào đó để tiếp tục sang vòng lặp tiếp theo! Còn bản chất, vì nó cũng là 1 lệnh nhảy, nó nhảy xuống vị trí kết thúc ("}") của khối lệnh trong vòng lặp chứa nó và bỏ qua tất cả các câu lệnh sau nó (Những câu lệnh thuộc cùng khối lệnh với continue của vòng lặp)
Ví dụ 2: Tìm kiếm và in ra số thứ tự và giá trị các phần tử có giá trị nhỏ hơn 35 trong mảng các số nguyên!
PHP:public class JavaDemoAndroidVn {
public static void main(String[] args) {
//Vd2 continue
int arrInt[] = {1, 2, 5, 0, 10, 200, 20, 35, 29};
System.out.println("Những số nhỏ hơn 35 trong mảng là: ");
System.out.print("Số thứ tự: ");
for (int i = 0; i <= 8; i++) {
if (arrInt[i] >= 35) {
System.out.print(" ");
continue;
}
System.out.print(i + " ");
}
System.out.print("\n" + "Giá trị: ");
for (int i = 0; i <= 8; i++) {
if (arrInt[i] >= 35) {
continue;
}
System.out.print(arrInt[i] + " ");
}
}
}
3, Nhãn (label):
Không giống như C/C++, Java không hỗ trợ lệnh goto để nhảy đến 1 vị trí nào đó của chương trình. Java dùng kết hợp nhãn (label) với từ khóa break và continue để thay thế cho lệnh
goto. Tuy nhiên, ta cũng chỉ có thể sử dụng label đối với các vòng lặp mà thôi!
PHP:
label:
for (…){
for (…){
if (<biểu thức điều kiện>){
break label;
}
else{
continue label;
}
}
}
Xác định vị trí của nhãn và xem như tên của vòng lặp ngoài. Nếu <biểu thức điều kiện> đúng thì lệnh break label sẽ thực hiện việc nhảy ra khỏi vòng lặp có nhãn là “label”, ngược lại sẽ tiếp tục vòng lặp có nhãn “label” (khác với break và continue thông thường chỉ thoát khỏi hay tiếp tục vòng lặp trong cùng chứa nó).
Ví dụ 3: Bài sau đây nhập xuất ma trận, tìm kiếm chỉ số của phần tử tìm thấy đầu tiên theo yêu cầu!
PHP:import java.util.Scanner;
public class JavaDemoAndroidVn {
public static void main(String[] args) {
//Vd3 Label
Scanner input = new Scanner(System.in);
int arrInt[][];
arrInt = new int[10][10];
System.out.print("Nhap so hang: ");
int m = input.nextInt();
System.out.print("Nhap so cot: ");
int n = input.nextInt();
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
System.out.print("arrInt[" + (i + 1) + "][" + (j + 1) + "] = ");
arrInt[i][j] = input.nextInt();
}
}
System.out.println("Ma tran vua nhap: ");
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
System.out.print(arrInt[i][j] + " ");
}
System.out.println("");
}
//Tìm chỉ số i, j của phần tử đầu tiên trong ma trận có giá trị nhập từ màn hình
System.out.print("Nhập giá trị cần tìm chỉ số i, j: ");
int soCanTim = input.nextInt();
labelAll:
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
if (arrInt[i][j] == soCanTim) {
System.out.println("Phần tử tìm thấy đầu tiên là: arrInt[" + (i + 1) + "][" + (j + 1) + "]");
break labelAll;
}
}
}
}
}
Nguồn : Android.vn
0 nhận xét:
Post a Comment