Java에서 메소드를 중단하거나 종료하는 방법은 무엇입니까?


123

breakJava 의 키워드 는 루프 또는 switch 문을 종료하는 데 사용할 수 있습니다. 방법에서 벗어나는 데 사용할 수있는 것이 있습니까?


2
이 질문도 확인해 볼 가치가 있습니다 : stackoverflow.com/q/18188123/2182237
Don

답변:


256

return메소드를 종료 하려면 키워드를 사용하십시오 .

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

위에서 링크 한 Java Tutorial에서 :

void로 선언 된 모든 메서드는 값을 반환하지 않습니다. return 문을 포함 할 필요는 없지만 포함 할 수 있습니다. 이 경우 return 문을 사용하여 제어 흐름 블록에서 분기하고 메서드를 종료 할 수 있으며 다음과 같이 간단히 사용됩니다.

return;

생성자에서 나가는 것이 작동합니까? 나는 그것이 약간 이상하다는 것을 알고 있지만 나는이 해킹이 필요합니다.
stillanoob

44

다른 답변에 추가하려면 수동으로 예외throw하여 메서드를 종료 할 수도 있습니다.

throw new Exception();

여기에 이미지 설명 입력


18

자바에서 탈출하는 방법 ??

정답 : 가장 좋은 방법 : System.exit(0);

Java 언어는 정상적인 프로그램 흐름을 중단 할 수있는 세 가지 점프 상태를 제공합니다.

이들은 다음을 포함한다 휴식 , 계속 , 반환 , 레이블 break 문 예를 들어

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();
            }
    }   
}

산출: 1

이제 프로그램 아래 참고 :

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();
            }
    }   
}

산출:

1
11
111
1111

and so on upto

1111111111

유사하게 continue 문을 사용할 수 있습니다. 위의 예에서 break를 continue로 바꾸십시오.

기억해야 할 사항 :

케이스 레이블은 변수 또는 메소드 호출과 관련된 런타임 표현식을 포함 할 수 없습니다.

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

4

재귀 메서드 내부에서 재귀가 깊다면 예외를 던지고 잡는 것이 옵션이 될 수 있습니다.

한 수준 위로 만 반환하는 Return과 달리 예외는 재귀 메서드에서 벗어나 처음 호출 한 코드에서 포착 될 수 있습니다.


1

return메서드를 종료 하는 데 사용 합니다.

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

또 다른 예가 있습니다.

int price = quantity * 5;
        if (hasCream) {
            price=price + 1;
        }
        if (haschocolat) {
            price=price + 2;
        }
        return price;
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.