Kotlin Döngüler
Merhaba Arkadaşlar, Bugünki dersimizde kotlin ‘de döngüleri göreceğiz.
Döngü tekrar eden işlemleri yapmamıza sağlayan bir yapı. Örneğin 1 ‘den 10 ‘a kadar yazı yazdırcaksınız ekrana. println(“1”) vs diyip inmek yerine döngü ile bu işlemi yapabilirsiniz.
// 1..5 --> 1,2,3,4,5
// 7..13 --> 7,8,9,10,11,12,13Kotlin ‘in bir güzelliği 2 rakam arasını .. ile yazdırıyor olabiliyorsunuz. Tabi bunu bir değişkene atayıp, döngü içerisinde kullanmanız gerekiyor. Örnek :
for (i in 1..10){
println(i)
}şimdi burada bir kaç infix fonksiyon var onlardan bahsedelim. İnfix fonksiyonu fonksiyonlar bölümünde anlatacağım. Kısaca aşağıdakileri bilmeniz yeterli. Detay sonra.
Bir üye fonksiyon olması lazım. Yani bir class’a ait olmalı.
Mutlaka 1 tane parametre almalı ve 1’den fazla alamaz.
vararg türünde parametre alamaz. (Çünkü tek 1 tane parametre alabilme kuralı olduğu için. vararg kullandığımız takdirde birden fazla parametre alabailir.)
Aldığı patrametreyi default değer olarak alamaz.
Basitçe ister 2 değer arasına boşluk katarak yazın, ister deger.name(deger) yapısını kullanın.
şimdi gelelim bu infix fonksiyonları incelemeye :
rangeTo : küçükten büyüğe doğru sıralı olarak ilerler.
1.rangeTo(5) // --> 1,2,3,4,5
1 rangeTo 5 // --> 1,2,3,4,5downTo: Büyükten küçüğe doğru sıralı olarak ilerler.
5 downTo 1 // --> 5,4,3,2,1
10.downTo(1) // --> 10,9,8,7,6,5,4,3,2,1step : Sayılar arasında atlama yapar
3.rangeTo(10) step 2 // --> 3 5 7 9
Not: 2 infix fonksiyonunu yanyana kullanamazsınız.
until: Şu sayıya kadar.. son sayı dahil olmaz.
Hadi bunları döngü ‘de kullanalım.
// range ile for metodunun kullanılması
for (i in 1..10){
println(i)
}
// in .. küçükten büyüğe gider. Tam tersi için downTo :
for(j in 4 downTo 1 ){
println(j)
}
// son sayıyı dahil etmemek için until kullanılır.
for (k in 1 until 4){}
// step ile artış sayısını belirleyebiliriz.
for(y in 1..40 step 3){}
//while örneği
var i = 0
while (i < 10)
{ // i 10 dan küçük olduğu müddetçe true dönecektir ve while kod bloğuna girecektir.
println("Merhaba Dünya")
i++ //her seferinde i'yi 1 arttırır
}
//doWhile örneği
var doCount=0
do
{
println("DoCount is: " + doCount)
doCount++
}while (doCount < 11)
//for örneği
val oneToTen = 1..10
val oneToFive = 1..5
for (k in oneToTen) {
for (j in oneToFive) {
val carpim = k * j
println("$k * $j = $carpim")
}
}Break : Döngüden çıkmak için kullanılır.
//break ile döngü sonlanır.
val numbers = 1..10
for (i in numbers){
if(i == 3){
break
}
println(i)
}Continue : Döngünün o anki adımını atlayabilirsiniz.
//Continue komutu ile döngünün bir adımını atlayarak sonraki adımına geçme işlemini yapabiliriz
for(sayi in numbers){
if(sayi == 3){
continue
}
println(sayi)
}
println("Döngüden çıktı")
Aralık ile forEach ‘i birleştirip kodlarınızı yazabilirsiniz.
/* (aralık).forEach{
donguDegiskeni -> kodlar..
}
*/
(0..10).forEach {
i -> println(i)
}
İçiçe döngülerde etiket kullanımı yapabilirsiniz.
//Etiketli Break ve continue örneği
disdongu@ for (i in 1..3){
icdongu@ for (j in 1..5){
println("i => $i & j => $j ")
if(i == 2) break@disdongu
// text@ ile break komutunda veya continue ile etiket oluşrurarak içiçe döngülerden istediğimiz döngüyü kırabiliyoruz.
/* eğer bu yapı olmasaydı aşağıdaki gibi olurdu.
i => 1 & j => 1
i => 1 & j => 2
i => 1 & j => 3
i => 1 & j => 4
i => 1 & j => 5
i => 2 & j => 1
i => 3 & j => 1
i => 3 & j => 2
i => 3 & j => 3
i => 3 & j => 4
i => 3 & j => 5 */ }
}
Basit örnekler :
// Örnekler
//1 'den 50 'ye kadar tek sayıları yazan
var sayi=1
while (sayi<50){
println(sayi)
sayi +=2
}
//do while farkı önce işlem sonra şart sağlanmasıdır.
//Örnek olarak kullanıcı adı ve şifre doğru girilene kadar devam eden örnek
var userName: String
var password: String
do {
println("Kullanıcı Adı Giriniz: ")
userName= readLine()!!.toString()
println("Şifre Giriniz")
password= readLine()!!.toString()
}while (userName != "userName" && password != "password")Beni Takip etmeyi unutmayın :
İyi Okumalar..



