Pure Java – 46 break & continue

Merhaba arkadaslar,
Bu yazimda unlabeled/labeled(etiketsiz/etiketli) break ve continue keyword(anahtar kelime)lerini inceleyecegiz.

continue ifadesi(statement) bir dongu icerisinde olmak zorundadir fakat hatirlayacagimiz gibi break ifadesi(statement) hem dongu icerisinde hem de switch ifadesi (statement) icerisinde kullanilabilir.

break ifadesi(statement) en icteki dongunun durmasini/kirilmasini saglar ve bir sonraki kod satirindan devam eder.
continue ifadesi(statement) en icteki dongunun bir sonraki iterasyona gecmesini saglar.

public class Test {
	public static void main(String[] args) {

		for (int i = 0; i < 10; i++) {

			if (i % 2 == 0) {
				continue;
			}

			if (i == 7) {
				break;
			}

			System.out.println("i:" + i);
		}

	}
}

i%2==0 ile , cift sayilar icin sart saglandigi icin continue calisacak ve dongu bir sonraki iterasyona gececektir.
i=7 oldugunda break sarti saglanacak ve dongu kirilacaktir.

Sinavda su tarz sorular gelebilir, iyi analiz etmek gerekir.

public class Test2 {
	public static void main(String[] args) {

		int[] ia = { 1, 3, 5, 7, 9 };

		for (int x : ia) {
			for (int j = 0; j < 3; j++) {
				if (x > 4 && x < 8)
					continue;
				System.out.print(" " + x);

				if (j == 1)
					break;
				continue;
			}
			continue;
		}
	}
}

break ve continue ifadelerini etiketli(label) olarak da kullanabiliriz.
Etiketsiz break ve continue ifadesin en icteki dongu icin calismaktadir, ic ice dongu yapilarinda etiket kullanarak break ve continue nun calisma kapsamini en icteki donguden disardaki dongulere cikartabiliriz.

public class Test3 {
	public static void main(String[] args) {
		outer: for (int i = 0; i < 5; i++) {
			for (int j = 0; j < 5; j++) {
				System.out.println("Hello");
				break outer;
			} 
			System.out.println("outer"); // Never prints
		}
		System.out.println("Good-Bye");
	}
}

icerdeki dongu calistiginda icerdeki break etiketli oldugu icin iki dongu de kirilacaktir.
ayni kodu continue ifadesi icin de deneyebiliriz.

public class Test4 {
	public static void main(String[] args) {
		outer: for (int i = 0; i < 5; i++) {
			for (int j = 0; j < 5; j++) {
				System.out.println("Hello");
				continue outer;
			}
			System.out.println("outer"); // Never prints
		}
		System.out.println("Good-Bye");
	}
}

Sinavda dikkat edilmesi gereken noktalardan biri ; dongu disindaki etiket ismi ile break/continue sonrasindaki etiket isminin aynin olduguna dikkat etmek gerek.

Bir de donguden onceki etiket ile dongu arasinda kod olmamalidir. etiket:dongu(for/while/do)

Yazimi burada sonlandiriyorum.
Herkese Bol Javali Gunler dilerim.
Be an oracle man , import java.*;
Levent Erguder
OCP, Java SE 6 Programmer
injavawetrust

Print Friendly, PDF & Email

Leave a Reply

Your email address will not be published. Required fields are marked *