Minggu, 15 Mei 2022

Tutorial Break dan Continue di Kotlin


Ketika melakukan perulangan, terkadang kita dihadapkan dengan data yang tak sesuai harapan. Contoh, seperti berikut:


  1. fun main() {

  2.     val listOfInt = listOf(1, 2, 3, null, 5, null, 7)

  3.     for (i in listOfInt) {

  4.         print(i)

  5.     }

  6. }

  7. /*

  8.    output: 123null5null7

  9. */


Proses perulangan pada kode di atas akan menghasilkan nilai null. Jika kita mengelola nilai tersebut, ada potensi NullPointerException di sana. Lalu bagaimana kita melewatkan atau menghentikan proses perulangan jika nilai yang dihasilkan bernilai null? Nah, di sini kita bisa menggunakan Break dan Continue.
Continue digunakan untuk melewatkan proses iterasi dan lanjut dengan proses iterasi berikutnya. Sementara itu, Break digunakan untuk menghentikan proses iterasi.
Berikut adalah contoh proses iterasi pada kode di atas. Kita akan coba melewatkannya jika nilai yang dihasilkan adalah null.

  1. fun main() {

  2.     val listOfInt = listOf(1, 2, 3, null, 5, null, 7)

  3.  

  4.     for (i in listOfInt) {

  5.         if (i == null) continue

  6.         print(i)

  7.     }

  8. }

  9. /*

  10.    output: 12357

  11. */


Pada kode di atas kita menggunakan kata kunci continue. Jika hasil evaluasi expression yang diberikan bernilai true, maka proses iterasi akan dilewatkan dan lanjut ke proses iterasi berikutnya.
Berikut adalah contoh jika kita ingin menghentikan proses iterasi ketika nilai yang dihasilkan bernilai null.

  1. fun main() {

  2.     val listOfInt = listOf(1, 2, 3, null, 5, null, 7)

  3.  

  4.     for (i in listOfInt) {

  5.         if (i == null) break

  6.         print(i)

  7.     }

  8. }


Penggunaan break pada kode di atas akan langsung menghentikan proses iterasi jika variabel i bernilai null.

Break dan Continue Labels

Pada Kotlin, sebuah expression dapat ditandai dengan sebuah label. Label pada Kotlin memiliki sebuah identifier yang diikuti dengan tanda @. Contoh dari sebuah label adalah foo@ atau bar@.
Untuk melabeli sebuah expression, kita cukup menempatkan label di depannya. Contohnya seperti berikut:

  1. fun main() {

  2.     loop@ for (i in 1..10) {

  3.         println("Outside Loop")

  4.  

  5.         for (j in 1..10) {

  6.             println("Inside Loop")

  7.             if ( j > 5) break@loop

  8.         }

  9.     }

  10. }

  11.  

  12. /*

  13.    output :

  14.        Outside Loop

  15.        Inside Loop

  16.        Inside Loop

  17.        Inside Loop

  18.        Inside Loop

  19.        Inside Loop

  20.        Inside Loop

  21. */


Pada kode diatas, break yang sudah ditandai dengan label akan dilompati ke titik awal proses perulangan yang sudah ditandai dengan label. break akan menghentikan proses perulangan terluar dari dalam proses perulangan, di mana break tersebut dipanggil

Posting Komentar