Java'da bir yöntem nasıl kırılır veya çıkarılır?


123

breakJava'daki anahtar kelime , bir döngü veya anahtar deyiminin dışına çıkmak için kullanılabilir. Bir yöntemden kopmak için kullanılabilecek herhangi bir şey var mı?


2
Bu soru da kontrol edilmeye değer olabilir: stackoverflow.com/q/18188123/2182237
Don

Yanıtlar:


256

returnBir yöntemden çıkmak için anahtar kelimeyi kullanın .

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

Yukarıya bağladığım Java Eğitiminden:

Void olarak tanımlanan herhangi bir yöntem bir değer döndürmez. Bir return ifadesi içermesine gerek yoktur, ancak bunu yapabilir. Böyle bir durumda, bir kontrol akış bloğundan ayrılmak ve yöntemden çıkmak için bir dönüş ifadesi kullanılabilir ve basitçe şu şekilde kullanılır:

return;

Bu, bir yapıcıdan çıkmak için işe yarar mı? Biraz garip olduğunu biliyorum ama bu hack'e ihtiyacım var.
stillanoob

44

Diğer yanıtlara eklemek için, manuel olarak bir istisna atarak da bir yöntemden çıkabilirsiniz :

throw new Exception();

görüntü açıklamasını buraya girin


18

Java'da nasıl çıkılır?

Ans: En iyi yol: System.exit(0);

Java dili, programın normal akışını kesintiye uğratmanıza izin veren üç atlama durumu sağlar.

Bunlar arasında break , continue , return , etiketli break ifadesi bulunur .

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

Çıktı: 1

Şimdi Programa Dikkat Edin:

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

çıktı:

1
11
111
1111

and so on upto

1111111111

Benzer şekilde, continue ifadesini de kullanabilirsiniz, sadece yukarıdaki örnekte break ile devam edin.

Hatırlanacak şeyler :

Bir durum etiketi, değişken veya yöntem çağrılarını içeren bir çalışma zamanı ifadeleri içeremez

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

4

Özyinelemeli yöntem içinde derin bir özyineleme içindeyseniz, istisna atma ve yakalama bir seçenek olabilir.

Yalnızca bir seviye yukarı döndüren Return'den farklı olarak, istisna, özyinelemeli yöntemden çıkarak başlangıçta onu çağıran koda ve yakalanabilir.


1

returnbir yöntemden çıkmak için kullanın .

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

İşte başka bir örnek

int price = quantity * 5;
        if (hasCream) {
            price=price + 1;
        }
        if (haschocolat) {
            price=price + 2;
        }
        return price;
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.