Làm thế nào để thoát ra hoặc thoát khỏi một phương thức trong Java?


123

Từ khóa breaktrong Java có thể được sử dụng để thoát ra khỏi câu lệnh loop hoặc switch. Có bất cứ điều gì có thể được sử dụng để phá vỡ từ một phương pháp?


2
Câu hỏi này cũng có thể đáng để kiểm tra: stackoverflow.com/q/18188123/2182237
Don

Câu trả lời:


255

Sử dụng returntừ khóa để thoát khỏi một phương thức.

public void someMethod() {
    //... a bunch of code ...
    if (someCondition()) {
        return;
    }
    //... otherwise do the following...
}

Từ Hướng dẫn Java mà tôi đã liên kết ở trên:

Bất kỳ phương thức nào được khai báo void đều không trả về giá trị. Nó không cần phải chứa một tuyên bố trở lại, nhưng nó có thể làm như vậy. Trong trường hợp như vậy, một câu lệnh return có thể được sử dụng để phân nhánh ra khỏi khối luồng điều khiển và thoát khỏi phương thức và được sử dụng đơn giản như thế này:

return;

Điều này sẽ làm việc để thoát khỏi một nhà xây dựng? Tôi biết nó hơi lạ nhưng tôi cần bản hack này.
stillanoob

44

Để thêm vào các câu trả lời khác, bạn cũng có thể thoát một phương thức bằng cách ném ngoại lệ theo cách thủ công:

throw new Exception();

nhập mô tả hình ảnh ở đây


18

Làm thế nào để thoát ra trong java ??

Trả lời: Cách tốt nhất: System.exit(0);

Ngôn ngữ Java cung cấp ba bước nhảy cho phép bạn làm gián đoạn dòng chương trình bình thường.

Chúng bao gồm phá vỡ , tiếp tục , trả lại , tuyên bố phá vỡ có nhãn cho ví dụ

import java.util.Scanner;
class demo
{   
    public static void main(String args[])
    {
            outerLoop://Label
            for(int i=1;i<=10;i++)
            {
                    for(int j=1;j<=i;j++)
                    {   
                        for(int k=1;k<=j;k++)
                        {
                            System.out.print(k+"\t");
                            break outerLoop;
                        }
                     System.out.println();                  
                    }
             System.out.println();
            }
    }   
}

Đầu ra: 1

Bây giờ Lưu ý bên dưới Chương trình:

import java.util.Scanner;
class demo
{   
    public static void main(String args[])
    {
            for(int i=1;i<=10;i++)
            {
                    for(int j=1;j<=i;j++)
                    {   
                        for(int k=1;k<=j;k++)
                        {
                            System.out.print(k+"\t");
                            break ;
                        }                   
                    }
             System.out.println();
            }
    }   
}

đầu ra:

1
11
111
1111

and so on upto

1111111111

Tương tự, bạn có thể sử dụng câu lệnh continue chỉ cần thay thế break bằng tiếp tục trong ví dụ trên.

Những điều cần nhớ :

Một nhãn trường hợp không thể chứa một biểu thức thời gian chạy liên quan đến các cuộc gọi biến hoặc phương thức

outerLoop:
Scanner s1=new Scanner(System.in);
int ans=s1.nextInt();
// Error s1 cannot be resolved

4

Nếu bạn đang ở sâu trong đệ quy bên trong phương pháp đệ quy, ném và bắt ngoại lệ có thể là một lựa chọn.

Không giống như Return chỉ trả về một cấp độ, ngoại lệ sẽ thoát ra khỏi phương thức đệ quy cũng như mã được gọi ban đầu, nơi nó có thể được bắt.


1

sử dụng returnđể thoát khỏi một phương thức.

 public void someMethod() {
        //... a bunch of code ...
        if (someCondition()) {
            return;
        }
        //... otherwise do the following...
    }

Đây là một ví dụ khác

int price = quantity * 5;
        if (hasCream) {
            price=price + 1;
        }
        if (haschocolat) {
            price=price + 2;
        }
        return price;
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.