Kotlin Break Continue Komutu Ve Label Kullanımı | Mobilhanem

Kotlin Break Continue Komutu Ve Label Kullanımı | Mobilhanem

Merhaba Arkadaşlar,
mobilhanem.com üzerinden anlattığımız / yayınladığımız Kotlin Eğitimi yazı serimize bu dersimizde Kotlin break continue komutu ve label kullanımından bahsedeceğiz.

Kotlin Break Continue ve Label

Break continue genel olarak tüm yazılım dillerinde olan bir komuttur ve döngü içinde belli koşullarda döngüden çıkmaya ve ya döngüde belli kosullar da bir step atlamaya yarar. Yani belli bir koşulda döngüyü tamamen sonlandırabilir ve ya o adımı atlayıp bir sonraki adımdan devam etmemize yarar.

Break Komutu

Break komutu döngüyü tamamen sonlandırmak için kullanılır. Yani bir döngü çalışırken break komutu ile karşılaşırsa ondan sonra gelen kodları çalıştırmaz ve döngüyü sonlandırır. Nasıl olduğunu aşağıdaki kodda daha iyi anlayacağınızı düşünüyorum.

Normal bir for döngüsü:

val numbers = 1..10

for(sayi in numbers){
println(sayi)
}

Konsol Çıktısı:
1
2
3
4
5
6
7
8
9
10

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

val numbers = 1..10

    

for(sayi in numbers){

   println(sayi)

}

 

 

 

Konsol Çıktısı:

1

2

3

4

5

6

7

8

9

10

Şimde gelelim Kotlin Break Komutu nasıl kullanılır ve ne işe yarar

val numbers = 1..10

for(sayi in numbers){
println(sayi)
if(sayi == 3){
break
}
}

println(“Döngüden çıktı”)

Konsol Çıktısı:
1
2
3
Döngüden çıktı

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

    val numbers = 1..10

    

    for(sayi in numbers){

        println(sayi)

        if(sayi == 3){

            break

        }

    }

 

    println(“Döngüden çıktı”)

 

 

 

 

Konsol Çıktısı:

1

2

3

Döngüden çıktı

Yukarıda gördüğünüz gibi kodumuz  çalıştı ve sayi değerinin 3 olduğu yerde if içine girdi ve döngüden direk çıktı. break komutu direk döngüden çıkma işlemini yaptı.

Peki println komutumuz break komutundan sonra olsa ne olacaktı.

val numbers = 1..10

for(sayi in numbers){
if(sayi == 3){
break
}
println(sayi)
}
println(“Döngüden çıktı”)

Konsol Çıktısı:
1
2
Döngüden çıktı

    val numbers = 1..10

    

    for(sayi in numbers){

        if(sayi == 3){

            break

        }

        println(sayi)

    }

    println(“Döngüden çıktı”)

 

 

 

Konsol Çıktısı:

1

2

Döngüden çıktı

Yukarıda gördüğünüz gibi Break komutuna geldiği zaman döngü içindeki, ama break komutu altındaki  kodlar da çalışmıyor.

Break komutunu nerde kullanabiliriz diyorsanız basit bir örnek vereyim. Elinizde uzunluğu 100 olan bir array var ve içinde 1 den 100 e kadar olan sayılar sırasız bir şekilde dizilmiş. İçinde 50 yi bulmaya çalışıyorsunuz. Bulduğunuz an artık daha döngünün dönmesine gerek yok. Bu durumda break komutu ile döngüden çıkıyorsunuz.

Continue Komutu

Continue komutu ile döngünün bir adımını atlayarak sonraki adımına geçme işlemini yapabiliriz. Nasıl yani diyorsanız aşağıdaki örnekte kısaca anlatmaya çalışalım.

val numbers = 1..10

for(sayi in numbers){
if(sayi == 3){
continue
}
println(sayi)

}
println(“Döngüden çıktı”)

Konsol çıktısı:
1
2
4
5
6
7
8
9
10
Döngüden çıktı

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

    val numbers = 1..10

    

    for(sayi in numbers){

        if(sayi == 3){

            continue

        }

        println(sayi)

 

    }

    println(“Döngüden çıktı”)

 

 

Konsol çıktısı:

1

2

4

5

6

7

8

9

10

Döngüden çıktı

Ne oldu şimdi diyorsanız, sayi değerimiz 3 olduğu an continue komutu altında ki kodları çalıştırmadı ve döngüye bir adım atlayarak devam etti. Bizim kodumuzda ne yaptı diyorsanız Konsol çıktısına baktığınız zaman 3 değerini yazdırmadı.

Peki bunu nerede kullanabiliriz ki diyorsanız yine basit bir örnek vereyim , döngü içinde bölme işlemi yapıyorsunuz , bölen sayı 0 olduğu zaman hata olacağını biliyoruz. Bunun kontrolünü yapıp bölen sayı 0 gelirse bölme işlemini yapmayıp bir sonraki adıma devam etmesi için continue kullanabiliriz.

Label Kullanımı

Kotlin Break Continue komutları iç içe döngülerde Label yapısı ile birlikte kullanılabilir. İçteki for döngüsünde break kullandığımız zaman aşağıdaki gibi sadece içteki for döngüsünden çıkacak ve dıştaki for döngüsü dönmeye devam edecek.

val numbers = 1..3
val numbers2 = 1..3

for(sayi in numbers){
for(sayi2 in numbers){
println(“Dıştaki döngü : $sayi , İçteki Döngü : $sayi2”)
}
}

Konsol Çıktısı:
Dıştaki döngü : 1 , İçteki Döngü : 1
Dıştaki döngü : 1 , İçteki Döngü : 2
Dıştaki döngü : 1 , İçteki Döngü : 3
Dıştaki döngü : 2 , İçteki Döngü : 1
Dıştaki döngü : 2 , İçteki Döngü : 2
Dıştaki döngü : 2 , İçteki Döngü : 3
Dıştaki döngü : 3 , İçteki Döngü : 1
Dıştaki döngü : 3 , İçteki Döngü : 2
Dıştaki döngü : 3 , İçteki Döngü : 3

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

    val numbers = 1..3

    val numbers2 = 1..3

    

    for(sayi in numbers){

        for(sayi2 in numbers){

             println(“Dıştaki döngü : $sayi , İçteki Döngü : $sayi2”)

         }

    }

 

 

Konsol Çıktısı:

Dıştaki döngü : 1 , İçteki Döngü : 1

Dıştaki döngü : 1 , İçteki Döngü : 2

Dıştaki döngü : 1 , İçteki Döngü : 3

Dıştaki döngü : 2 , İçteki Döngü : 1

Dıştaki döngü : 2 , İçteki Döngü : 2

Dıştaki döngü : 2 , İçteki Döngü : 3

Dıştaki döngü : 3 , İçteki Döngü : 1

Dıştaki döngü : 3 , İçteki Döngü : 2

Dıştaki döngü : 3 , İçteki Döngü : 3

Yukarıda normal bir şekilde iç içe döngü kullandık Dıştaki  döngü ve İçteki döngünün sayi değerlerini yazdırdık. Ben içteki döngünün değerinin 3 olduğu an tüm döngüden çıkmasını isteyebilirim. Bunuda aşağıdaki gibi break komutu ile yaptığımda istediğimi elde edemediğimi göreceksiniz.

val numbers = 1..3
val numbers2 = 1..3

for(sayi in numbers){
for(sayi2 in numbers){
if(sayi2 == 3){
break
}
println(“Dıştaki döngü : $sayi , İçteki Döngü : $sayi2”)
}
}

Konsol Çıktısı:
Dıştaki döngü : 1 , İçteki Döngü : 1
Dıştaki döngü : 1 , İçteki Döngü : 2
Dıştaki döngü : 2 , İçteki Döngü : 1
Dıştaki döngü : 2 , İçteki Döngü : 2
Dıştaki döngü : 3 , İçteki Döngü : 1
Dıştaki döngü : 3 , İçteki Döngü : 2

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

    val numbers = 1..3

    val numbers2 = 1..3

    

    for(sayi in numbers){

        for(sayi2 in numbers){

            if(sayi2 == 3){

               break

            }

             println(“Dıştaki döngü : $sayi , İçteki Döngü : $sayi2”)

         }

    }

 

 

 

Konsol Çıktısı:

Dıştaki döngü : 1 , İçteki Döngü : 1

Dıştaki döngü : 1 , İçteki Döngü : 2

Dıştaki döngü : 2 , İçteki Döngü : 1

Dıştaki döngü : 2 , İçteki Döngü : 2

Dıştaki döngü : 3 , İçteki Döngü : 1

Dıştaki döngü : 3 , İçteki Döngü : 2

Break ve Label Kullanımı

Ben sayi2 değerimin 3 olduğu an break komutu ile döngüden çıkmasını istiyorum. Fakat yukarıdaki kod da sadece içerideki döngüden çıkıyor ve kodumuz çalışmaya devam ediyor. peki dıştaki döngüden de çıkmak istersek nasıl yapacağız. İşte bu durumda Label kullanacağız. Aşağıdaki kodda örneklendiriyorum.

val numbers = 1..3
val numbers2 = 1..3

Mobilhanem@for(sayi in numbers){
for(sayi2 in numbers){
if(sayi2 == 3){
break@Mobilhanem
}
println(“Dıştaki döngü : $sayi , İçteki Döngü : $sayi2”)
}
}

Konsol Çıktısı:
Dıştaki döngü : 1 , İçteki Döngü : 1
Dıştaki döngü : 1 , İçteki Döngü : 2

    val numbers = 1..3

    val numbers2 = 1..3

    

    Mobilhanem@for(sayi in numbers){

        for(sayi2 in numbers){

            if(sayi2 == 3){

               break@Mobilhanem

            }

             println(“Dıştaki döngü : $sayi , İçteki Döngü : $sayi2”)

         }

    }

 

Konsol Çıktısı:

Dıştaki döngü : 1 , İçteki Döngü : 1

Dıştaki döngü : 1 , İçteki Döngü : 2

Evet şuan istediğim gibi çalıştı. Ama nasıl çalıştı 🙂 For döngüsünden önce herhangi bir isimlendirme ile (biz mobilhanem verdik label’ımza siz istediğinizi verebilirsiniz) LabelAdı@ şeklinde for döngüsünün önüne koyduk, sonrasında ise aynı isimlendirme ile @LabelAdı şeklinde hemen break komutunun peşine koyduk , böylelikle kodumuz break komutundan sonraki labelAdı’na göre sonlandıracağı for döndüsünü seçti. Zaten dıştaki for döngüsü sonlandığı an , içteki for döngüsüde çalışmayacaktır.

Continue ve Label Kullanımı

Aynı örneği Continue komutu ile de çalıştıralım.

val numbers = 1..3
val numbers2 = 1..3

Mobilhanem@for(sayi in numbers){
for(sayi2 in numbers){
if(sayi2 == 3){
continue@Mobilhanem
}
println(“Dıştaki döngü : $sayi , İçteki Döngü : $sayi2”)
}
}

Konsol Çıktısı:
Dıştaki döngü : 1 , İçteki Döngü : 1
Dıştaki döngü : 1 , İçteki Döngü : 2
Dıştaki döngü : 2 , İçteki Döngü : 1
Dıştaki döngü : 2 , İçteki Döngü : 2
Dıştaki döngü : 3 , İçteki Döngü : 1
Dıştaki döngü : 3 , İçteki Döngü : 2

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

    val numbers = 1..3

    val numbers2 = 1..3

    

    Mobilhanem@for(sayi in numbers){

        for(sayi2 in numbers){

            if(sayi2 == 3){

               continue@Mobilhanem

            }

             println(“Dıştaki döngü : $sayi , İçteki Döngü : $sayi2”)

         }

    }

 

Konsol Çıktısı:

Dıştaki döngü : 1 , İçteki Döngü : 1

Dıştaki döngü : 1 , İçteki Döngü : 2

Dıştaki döngü : 2 , İçteki Döngü : 1

Dıştaki döngü : 2 , İçteki Döngü : 2

Dıştaki döngü : 3 , İçteki Döngü : 1

Dıştaki döngü : 3 , İçteki Döngü : 2

Continue komutu kendinden sonra gelen LabelAdı’na göre döneceği for döngüsünü buluyor. Bizim kodumuzda continue komutu eğer label kullanmasaydık ,içteki döngüye dönecekti ama label kullandığımız için yukarıdaki for döngüsüne dönüyor.

Bu dersimizde Kotlin Break Continue ve Label kullanımından bahsettik. Kotlin Break Continue komutları arasında ki farkıda anladığımızı düşünüyorum. Label konusunu ise sizlerde kod yazarak deneyebilirsiniz. Daha iyi oturacağını düşünüyorum.

Bu konuda anlatmak istediklerim bu kadar konu hakkında soru , görüş ve önerilerinizi alttaki yorum kısmından sorabilirsiniz ayrıca sorularınızı Soru & Cevap sitemizden de çekinmeden sorabilirsiniz.

Kaynak : https://kotlinlang.org/docs/reference/returns.html

Tüm Kotlin Derslerimiz için tıklayınız.

1

Yorum Yap
0 Yorum yapan