14 June 2016

Bài 10: Break và Continue trong Java

images ​

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!

break ​

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:
Hide Spoiler
PHP:
public class JavaDemoAndroidVn {
    public static 
void main(String[] args) {
        
//Vd1 break
        
int arrInt[] = {125010200203529};
        for (
int i 0<= 8i++) {
            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)

continue ​

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!
Hide Spoiler
PHP:
public class JavaDemoAndroidVn {
    public static 
void main(String[] args) {
        
//Vd2 continue
        
int arrInt[] = {125010200203529};
        
System.out.println("Những số nhỏ hơn 35 trong mảng là: ");
        
System.out.print("Số thứ tự: ");
        for (
int i 0<= 8i++) {
            if (
arrInt[i] >= 35) {
                
System.out.print(" ");
                continue;
            }
            
System.out.print(" ");
        }
        
System.out.print("\n" "Giá trị:  ");
        for (
int i 0<= 8i++) {
            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;
        }
    }
}
Lệnh “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!
Hide Spoiler
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 0mi++) {
            for (
int j 0nj++) {
                
System.out.print("arrInt[" + (1) + "][" + (1) + "] = ");
                
arrInt[i][j] = input.nextInt();
            }
        }
        
System.out.println("Ma tran vua nhap: ");
        for (
int i 0mi++) {
            for (
int j 0nj++) {
                
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 0mi++) {
            for (
int j 0nj++) {
                if (
arrInt[i][j] == soCanTim) {
                    
System.out.println("Phần tử tìm thấy đầu tiên là: arrInt[" + (1) + "][" + (1) + "]");
                    break 
labelAll;
                }
            }
        }

    }
}


Nguồn : Android.vn 

0 nhận xét:

Post a Comment

 

BACK TO TOP

Xuống cuối trang