If Expressions
Saat mengembangkan sebuah program, kita pasti bertemu dengan alur program yang perlu sebuah kondisi untuk menjalankan sebuah statement atau expression. Contoh ketika kita ingin menginisialisasi nilai dari sebuah variabel berdasarkan suatu kondisi. Untuk menyelesaikannya, gunakan If Expression.
If expression direpresentasikan dengan kata kunci if. If akan kita perlukan untuk menyelesaikan kasus di atas, dimana if akan digunakan untuk menguji suatu kondisi untuk menjalankan sebuah proses. If akan mengeksekusi sebuah statement atau expression jika hasil evaluasi dari expressions yang diberikan pada blok if bernilai true. Sebaliknya, jika bernilai false maka proses yang ditentukan akan dilewatkan.
- val openHours = 7
- val now = 20
- if (now > openHours){
- println("office already open")
- }
Kode di atas adalah contoh sederhana penggunaan if dengan memanfaatkan operator greater than untuk membandingkan nilai. Jika if digunakan untuk mengembalikan nilai atau menetapkan nilai dari sebuah variabel maka if wajib memiliki branch else. Contohnya seperti berikut:
- val openHours = 7
- val now = 20
- val office: String
- if (now > openHours) {
- office = "Office already open"
- } else {
- office = "Office is closed"
- }
- print(office)
Else akan dijalankan jika hasil evaluasi pada expression yang diberikan menghasilkan nilai false. If merupakan sebuah expressions yang dapat mengembalikan nilai, sehingga kita dapat menyimpan hasilnya ke dalam sebuah variabel.
- val openHours = 7
- val now = 20
- val office: String
- office = if (now > openHours) {
- "Office already open"
- } else {
- "Office is closed"
- }
- print(office)
Pada kode di atas, kita hanya menggunakan If untuk menguji 2 (dua) kondisi. Lalu bagaimana jika kita memiliki beberapa kondisi? Kita bisa menggabungkan else dan if seperti berikut:
- val openHours = 7
- val now = 7
- val office: String
- office = if (now > 7) {
- "Office already open"
- } else if (now == openHours){
- "Wait a minute, office will be open"
- } else {
- "Office is closed"
- }
- print(office)
Blok else if akan dijalankan jika hasil evaluasi pada branch sebelumnya bernilai false. Jika hasil evaluasi pada branch else if juga bernilai nilai false, maka lanjut ke evaluasi branch selanjutnya.
Perlu diketahui bahwa Kotlin tidak mendukung ternary operator (condition ? then : else), karena peran dari operator tersebut sudah digantikan dengan if expressions