X

if/elseif – Koşul ve Döngü İfadeleri (Deyimleri)

MATLAB’da belirli bir durumun sağlanması durumunu kontrol ederek buna göre bir sonuç veren yapılar “Koşul ve Döngü İfadeleri” olarak sınıflandırılabilir. Bu ve takip eden yazılarımızda bu ifadelerin kullanım biçimlerinden bahsedeceğiz.

 

Yazı İçeriği

if İfadesi

MATLAB’da en temel koşul ifadesi “if” deyimidir. Diğer koşul ve döngü ifadelerinin temelinde bu ifade de vardır. Yani diğer ifadeleri, “if” ile de yazılabilir. Bu durumda eğer diğer ifadeler “if” ile de yazılabiliyor ise neden onları da kullanıyoruz sorusu düşünülebilir. Her bir ifadenin kendine göre kullanım kolaylığı ve performans avantajı olması sebebiyle diğer ifadeleri de kullanıyoruz.

“if” ifadesini en temel olarak, sadece bir koşul sağlandığından istenen kodların yürütülmesi istendiğinde kullanılır.

Bu durumu temel bir örnekle açıklayalım.

sayi = 10;

if sayi > 5
    disp('Sayi Beşten Büyüktür')
end

disp('Program Akışı Sonlandı')

Bu program akışının çıktısı da aşağıdaki gibi olacaktır.

Sayi Beşten Büyüktür

Program Akışı Sonlandı

 

Bu program akışında “sayi” değişkenini 10 değerine eşitleyerek tanımladık. Ardından da bu ifade 5 değerinden büyük olma durumunu “if sayi > 5” ifadesi ile kontrol ettik. Bu durum sağlandığı için döngünün içindeki “Sayi Beşten Büyüktür” ifadesi ekrana yazdırıldı. En sonunda da programın sonlandığını göstermek için “Program Akışı Sonlandı” şeklinde bir yazı daha yazdırdık.

 

Burada “sayi” değişkenini giriş değerinde on değerine atama yaparak yaptık. Her zaman ilk başta bunu belirlemek zorunda değiliz. Kullanıcıdan da değer alarak işlem yapabileceğimiz örnekleri daha sonra bahsedeceğiz.

Ayrıca bir sonraki bölüme geçmeden de farklı bir sayı ile örneği tekrar edelim.

sayi = 3;

if sayi > 5
    disp('Sayi Beşten Büyüktür')
end

disp('Program Akışı Sonlandı')

 

Bu program akışının çıktısı da aşağıdaki gibi olacaktır:

Program Akışı Sonlandı

 

Burada da görüldüğü üzere eğer bizim başlangıçta belirttiğimiz sayı değeri koşulu sağlamıyorsa program herhangi bir ifade vermeden direkt olarak döngünün dışından devam eder. Bu da daha rahat anlaşılması için “Program Akışı Sonlandı” ifadesi ile belirtilmiştir.

 

if-else İfadesi

 

“if-else” ifadesini temel olarak, koşul sağlandığından istenen kodların yürütülmesini aksi durumda koşul sağlanmadığında ise ilgili kodların yürütülmesi istendiğinde kullanılır.

İlk bölümde yaptığımız örneği güncelleyerek bu konuyu anlayalım. Yukarıdaki örnekte verilen sayı koşula uymadığı zaman bunu belirten herhangi bir ifade yoktu. “else” ifadesi ile bunu koda ekleyelim.

 

sayi = 3;

if sayi > 5
    disp('Sayi Beşten Büyüktür')
else
    disp('Sayi Beşten Küçüktür')
end

disp('Program Akışı Sonlandı')

Bu program akışının çıktısı da aşağıdaki gibi olacaktır.

Sayi Beşten Küçüktür

Program Akışı Sonlandı

 

Görüldüğü gibi başlangıçta verilen “sayi” değişkenin değeri ilk olarak 5’ten büyük olması durumu ile kontrol ediliyor. Bu koşula uymadığı için direkt olarak “else” koşulunun altındaki ifade ile devam ediyor. Bu durum gerçekleştikten sonra da döngüden çıkarak program devam edip, sonlanıyor.

 

if-elseif-else ifadesi

“if-elseif-else” ifadesini temel olarak, sırayla ilk koşuldan itibaren en son koşula kadar kontrol eder. Bir koşul sağlandığı zaman ilgili kodlar eğer hiçbir koşul sağlanmaz ise else koşulunun altındaki ilgili kodların yürütülmesi sağlanır

Önceki örnekte “if-else” ile büyük veya küçük olma durumunu kontrol edebiliyorduk. Bu durumda eşit olduğunda ise hatalı sonuç vermektedir. Bunun gibi durumları ortadan kaldırmak için “if-elseif-else” döngü biçimi kullanılabilir.

 

sayi = 10;

if sayi > 10
disp('Sayi Ondan Büyüktür')
elseif sayi < 10
disp('Sayi Ondan Küçüktür')
else
disp('Sayi Ona Eşittir')
end

disp('Program Akışı Sonlandı')

Bu program akışının çıktısı da aşağıdaki gibi olacaktır.

Sayi Ona Eşittir

Program Akışı Sonlandı

 

Görüldüğü gibi “sayi” değeri 10’a eşitlenmiştir. Ardından 10’dan büyük olma koşulu ve 10’dan küçük olma koşulları adım adım kontrol edilmiştir. Ancak bunların hiçbirine uymamıştır. Bundan dolayı en sondaki “else” koşulu altındaki ifade ile program devam etmiştir.

En temel biçimi ile “if” koşul ifadesini açıkladıktan sonra daha farklı seviyelerde örnekler ile pekiştirme yapalım. Burada bulunan örnekler projelerde kullanılırken daha farklı veya daha kısa biçimlerde de yapılabilir. Öğretici olması açısından uzun biçimleri ile ifade edilmiştir.

 

Örnekler

Yukarıda bahsettiğimiz konuları hazır fonksiyonları da kullanarak farklı örnekler ile pekiştirelim.

Pozitif Sayının Karekökü

Girilen sayı sadece pozitif olduğunda hesaplayan bir kod yazalım.

 

sayi = input('Sayi Giriniz: ')

if sayi >= 0
    karekok = sqrt(sayi)
end

disp('Program Akışı Sonlandı')

 

Kullanıcıdan “input” komutu ile sayı girmesini istedik. Ardından “if sayi >= 0” ifadesi ile girilen sayının 0’a eşit veya 0’dan büyük olması koşulunu kontrol ettik.

Eğer bu koşul sağlandı ise “karekok = sqrt(sayi)” ifadesi ile sayının karekökünü aldık ve sonucu ekrana yazdırdı.

Eğer koşul sağlanmaz ise program devam edip “end” ifadesinin altındaki satıra geçti.

 

Sayi Giriniz: 6

sayi =
     6

karekok =
    2.4495

Program Akışı Sonlandı

 

Sayi Giriniz: -9

sayi =
    -9

Program Akışı Sonlandı

Girilen İki Sayının Karşılaştırılması

Kullanıcı tarafından girilen iki sayının karşılaştırılmasını yapalım.

 

sayi1 = input('İlk Sayıyı Giriniz: ')
sayi2 = input('İkinici Sayıyı Giriniz: ')

if sayi1 > sayi2
    disp('Birinci Sayı, İkinci Sayıdan Büyüktür')
else
    disp('İkinci Sayı, Birinci Sayıdan Büyüktür')
end

disp('Program Akışı Sonlandı')

 

Kullanıcıdan iki sayı aldıktan sonra birinci sayıyı ikinci sayı ile karşılaştırma yapılmaktadır. Eğer birinci sayı daha büyükse bunu ekrana yazdırmakta tersi durumda ise ikinci sayının büyük olduğunu belirtmektedir. Ardından da program “end” satırının sonuna geçerek programın bittiğini göstermektedir.

İlk Sayıyı Giriniz: 3

sayi1 =
     3

İkinici Sayıyı Giriniz: 7

sayi2 =
     7

İkinci Sayı, Birinci Sayıdan Büyüktür
Program Akışı Sonlandı

 

İlk Sayıyı Giriniz: 8

sayi1 =
     8


İkinici Sayıyı Giriniz: 6

sayi2 =
     6

Birinci Sayı, İkinci Sayıdan Büyüktür
Program Akışı Sonlandı

 

Yukarıdaki iki örnekte ayrı ayrı birinci ve ikinci sayının büyük olduğu durumları gösterdik.

Bu ifadenin eksik olarak çalıştığı durumlar da mevcuttur. Bunu da alt taraftaki örnekte görebiliriz. İki sayı bir birine eşit olduğu zaman hatalı sonuç vermektedir. Bunun sebebi program akış olarak; birinci sayı ve ikinci sayıyı aldıktan sonra birinci sayıyı ikinci sayı ile karşılaştırmaktadır. Bu koşula uymuyor ise yani koşul yanlış ise diğer koşulu otomatik olarak doğru kabul etmektedir. İşte bu durumda ileriki konuda bahsedeceğimiz daha gelişmiş bir koşul ifadesini kullanmamız gerekmektedir.

İlk Sayıyı Giriniz: 4

sayi1 =
     4

İkinici Sayıyı Giriniz: 4

sayi2 =
     4

İkinci Sayı, Birinci Sayıdan Büyüktür
Program Akışı Sonlandı

 

Girilen İki Sayının Karşılaştırılması – 2

Bir önceki örnekte yaptığımız çalışmayı güncelleyerek devam edelim.

 

sayi1 = input('İlk Sayıyı Giriniz: ')
sayi2 = input('İkinici Sayıyı Giriniz: ')

if sayi1 > sayi2
    disp('Birinci Sayı, İkinci Sayıdan Büyüktür')
elseif sayi2 > sayi1
    disp('İkinci Sayı, Birinci Sayıdan Büyüktür')
else
    disp('İki Sayı Birbirine Eşittir')
end

disp('Program Akışı Sonlandı')

 

İlk Sayıyı Giriniz: 9

sayi1 =
     9


İkinici Sayıyı Giriniz: 4

sayi2 =
     4


Birinci Sayı, İkinci Sayıdan Büyüktür
Program Akışı Sonlandı

 

İlk Sayıyı Giriniz: 3

sayi1 =
     3


İkinici Sayıyı Giriniz: 8

sayi2 =
     8


İkinci Sayı, Birinci Sayıdan Büyüktür
Program Akışı Sonlandı

 

İlk Sayıyı Giriniz: 5

sayi1 =
     5


İkinici Sayıyı Giriniz: 5

sayi2 =
     5


İki Sayı Birbirine Eşittir
Program Akışı Sonlandı

 

Yukarıdaki örnek değerlerde de gördüğümüz gibi daha “elseif” ifadesi ile koşullar arttırılmış oldu. Bu da sayılar ile ilgili kontrollerin daha doğru yapılmasını sağladı.

 

String(Metin/Yazı) İfadesi İle Koşul Kontrolü

Koşul ifadelerini sadece sayılar ile yapmak zorunda değiliz.

Örnek olarak hava durumuna göre kullanıcıya öneride bulunacak bir program yazalım.

 

bilgi = ('Hava Durumunu yağmurlu ise Y veya y, güneşli ise G veya g harfini yazarak belirtiniz: \n');

hava_durumu = input(bilgi, 's')


if (hava_durumu == 'Y') || (hava_durumu == 'y')
    disp('Hava durumu yağmurlu belirtilmiştir.')
    disp('Şemsiyenizi yanınıza almayı unutmayın')
elseif (hava_durumu == 'G') || (hava_durumu == 'g')
    disp('Hava durumu güneşli belirtilmiştir.')
    disp('Gözlüğünüzü yanınıza almayı unutmayın')
else
    disp('Yanlış giriş yapıldı.')
end

disp('~~İYİ GÜNLER~~')

 

  • “bilgi” ifadesi ile kullanıcıya bilgilendirme yapıyoruz.
  • “hava_durumu” ifadesi içinde bulunan “input(bilgi, ‘s’)” ile kullanıcıdan hava durumunu karakter ile alıyoruz. Burada ‘s’ ile string(yazı/ifade) girişi yapıldığını belirtiyoruz.
  • Ardından yapılan girişe göre uygun sonucu ekrana yazdırıyoruz.

 

Hava Durumunu yağmurlu ise Y veya y, güneşli ise G veya g harfini yazarak belirtiniz:
Y

hava_durumu =
Y


Hava durumu yağmurlu belirtilmiştir.
Şemsiyenizi yanınıza almayı unutmayın

~~İYİ GÜNLER~~

 

Hava Durumunu yağmurlu ise Y veya y, güneşli ise G veya g harfini yazarak belirtiniz:
g

hava_durumu =
g


Hava durumu güneşli belirtilmiştir.
Gözlüğünüzü yanınıza almayı unutmayın

~~İYİ GÜNLER~~

 

 

Hava Durumunu yağmurlu ise Y veya y, güneşli ise G veya g harfini yazarak belirtiniz:
b


hava_durumu =
b


Yanlış giriş yapıldı.

~~İYİ GÜNLER~~

 

Temel Hesap Makinesi

Öğrendiğimiz koşul ifadesini daha geniş kapsamlı bir örnekte pekiştirelim. Burada hem karakter hem sayı girişleri de yaparak iki farklı durumu tek bir programda aynı anda görme fırsatımız da olacaktır.

 

disp('Hesap Makinesi')
disp('Sadece 2 adet sayı girebilirsiniz')


sayi1 = input('Birinci Sayıyı Giriniz: ')
sayi2 = input('İkinci Sayıyı Giriniz: ')


disp('Toplama için A, a veya +')
disp('Çıkarma için S, s veya -')
disp('Çarpma için M, m veya *')
disp('Bölme için D, d veya /')

secim = ('\n Yapmak İstediğiniz İşlemi Belirtiniz ==> ');


islem_secimi = input(secim, 's')


if (islem_secimi == 'A') || (islem_secimi == 'a') || (islem_secimi == '+')
    toplama = sayi1 + sayi2;
    fprintf('İki Sayının Toplamı: %d\n', toplama)

elseif (islem_secimi == 'S') || (islem_secimi == 's') || (islem_secimi == '-')
    cikarma = sayi1 - sayi2;
    fprintf('İki Sayının Farkı: %d\n', cikarma)   

elseif (islem_secimi == 'M') || (islem_secimi == 'm') || (islem_secimi == '*')
    carpma = sayi1 * sayi2;
    fprintf('İki Sayının Çarpımı: %d\n', carpma)  

elseif (islem_secimi == 'D') || (islem_secimi == 'd') || (islem_secimi == '/')
    bolme = sayi1 / sayi2;
    fprintf('İki Sayının Bölümü: %d\n', bolme)  

else
    disp('Yanlış Bir Giriş Yaptınız.')

end


disp('~~TEŞEKKÜRLER~~')

 

Programımızın akışını açıklamak gerekirse;

  • Kullanıcıdan birinci ve ikinci sayı alınır
  • Ardından ekrana yapılacak olan işlemler hakkında bilgilendirme yazdırılır
    • Burada karışıklık olmaması adına İngilizce terimler kullanılmıştır.
    • Toplama = Addition
    • Çıkarma = Subtraction
    • Çarpma = Multiplication
    • Bölme = Division
  • Kullanıcı yapmak istediği işlemi ister sembol isterse büyük veya küçük harf ile seçimi belirtir.
  • İf-elseif-else koşulu içinde istenilen duruma göre işlem yapılır
  • Listede olmayan bir seçim belirtilirse else koşulu altındaki bilgilendirme yapılır
  • En sonunda Teşekkürler mesajı ile çalışma bitirilir.

 

Hesap Makinesi

Sadece 2 adet sayı girebilirsiniz

Birinci Sayıyı Giriniz: 4

sayi1 =
     4


İkinci Sayıyı Giriniz: 8

sayi2 =
     8


Toplama için A, a veya +
Çıkarma için S, s veya -
Çarpma için M, m veya *
Bölme için D, d veya /


 Yapmak İstediğiniz İşlemi Belirtiniz ==> A


islem_secimi =
A


İki Sayının Toplamı: 12

~~TEŞEKKÜRLER~~

 

Hesap Makinesi

Sadece 2 adet sayı girebilirsiniz

Birinci Sayıyı Giriniz: 8

sayi1 =
     8


İkinci Sayıyı Giriniz: 3

sayi2 =
     3


Toplama için A, a veya +
Çıkarma için S, s veya -
Çarpma için M, m veya *
Bölme için D, d veya /


 Yapmak İstediğiniz İşlemi Belirtiniz ==> s


islem_secimi =
s


İki Sayının Farkı: 5

~~TEŞEKKÜRLER~~
Hesap Makinesi

Sadece 2 adet sayı girebilirsiniz

Birinci Sayıyı Giriniz: 9

sayi1 =
     9


İkinci Sayıyı Giriniz: -3

sayi2 =
    -3


Toplama için A, a veya +
Çıkarma için S, s veya -
Çarpma için M, m veya *
Bölme için D, d veya /


 Yapmak İstediğiniz İşlemi Belirtiniz ==> *

islem_secimi =
*


İki Sayının Çarpımı: -27

~~TEŞEKKÜRLER~~
Hesap Makinesi

Sadece 2 adet sayı girebilirsiniz

Birinci Sayıyı Giriniz: -8

sayi1 =
-8

 
İkinci Sayıyı Giriniz: -6
 
sayi2 =
-6

 
Toplama için A, a veya +
Çıkarma için S, s veya -
Çarpma için M, m veya *
Bölme için D, d veya /
 

Yapmak İstediğiniz İşlemi Belirtiniz ==> D
 

islem_secimi =
D

 
İki Sayının Bölümü: 1.333333e+00

~~TEŞEKKÜRLER~~

 

Sayının Özelliğini Kontrol Etme

Bu kısımdaki örnekte ise diğer örneklerin aksine iç içe if çalışması yapacağız. Bunun için kullanıcıdan alınacak olan sayının pozitif mi negatif mi olduğunu kontrol edip ardından farklı koşullara göre ilgili sonuçları ekrana yazdıracağız.

Program akış olarak;

  • Kullanıcı bir sayı girişi yapar
  • Öncelikle sayının 0’a eşit olup olmama durumunu kontrol eder.
  • Eğer eşit ise direkt olarak bunu belirtir.
  • 0’a eşit değilse girilen sayının 0’dan büyük olma durumunu kontrol eder
  • Eğer negatif ise direkt olarak sayının negatif olduğunu belirtir.
  • Sayı pozitif ise tam sayı durumunu kontrol eder.

 

sayi = input('Sayı Giriniz: ')

if sayi ~= 0
    disp ('Girilen Sayı 0 Değildir')

    if sayi > 0
        disp('Girdiğiniz Sayı Pozitif Bir Sayıdır')

        if mod(sayi,1) == 0
            disp('Girilen sayı tam sayıdır')
        else
            disp('Girilen sayı tam sayı değildir.')
        end

    else
        disp('Girdiğiniz Sayı Negatif Bir Sayıdır')
    end

else
    disp('Girdiğiniz Sayı 0''a eşittir')
end


disp('~~TEŞEKKÜRLER~~')

 

Sayı Giriniz: 6

sayi =
     6


Girilen Sayı 0 Değildir
Girdiğiniz Sayı Pozitif Bir Sayıdır
Girilen sayı tam sayıdır

~~TEŞEKKÜRLER~~

 

Sayı Giriniz: 4.87

sayi =
    4.8700


Girilen Sayı 0 Değildir
Girdiğiniz Sayı Pozitif Bir Sayıdır
Girilen sayı tam sayı değildir.

~~TEŞEKKÜRLER~~

 

Sayı Giriniz: -5

sayi =
    -5


Girilen Sayı 0 Değildir
Girdiğiniz Sayı Negatif Bir Sayıdır

~~TEŞEKKÜRLER~~

 

Sayı Giriniz: 0

sayi =
     0


Girdiğiniz Sayı 0'a eşittir

~~TEŞEKKÜRLER~~
ekremt: Mekatronik Mühendisi. MATLAB konusunda kendini geliştirmeye çalışan, öğrenmeye ve araştırmaya açık biri.