Arduino if, else if, else ve Karşılaştırma Operatörleri

8
35714
Okunma

if else ve karşılaştırma operatörleri

if else ve karşılaştırma operatörleri


if, else if, else ve  (karşılaştırma operatörleri)

if bir sorgulama komutudur.

Bir karşılaştırma operatörüyle birlikte kullanıldığında, belli bir değerin üzerinde olup olmadığı sınar. Bir if komutunun biçimi:

if (sayi > 50)
{
 digitalWrite(13,HIGH); // 13. pine enerji (5volt) ver.
}

Program, sayı değerinin 50’den büyük olup olmadığını kontrol eder. Öyleyse, bi alt satıra geçer ve orada işlemi gerçekleştirir. Başka bir deyişle, parantez içindeki ifade doğruysa, kıvrık parantez içindeki ifadeler çalıştırılır.

Değilse, program parantez içindeki kodu atlayıp bi alt kodu işletir. Köşeli parantezler bir if ifadesinden sonra atlanabilir. Bu yapılırsa, sonraki satır (noktalı virgül ile tanımlanır) yalnızca koşullu deyim olur.

if (x > 120) digitalWrite(LEDpin, HIGH);     //x 120'den büyükse LEDpin'e enerji(5volt) ver.

if (x > 120)                                 //x 120'den büyükse LEDpin'e enerji(5volt) ver.
digitalWrite(LEDpin, HIGH);                    

if (x > 120){ digitalWrite(LEDpin, HIGH); }  //x 120'den büyükse LEDpin'e enerji(5volt) ver.

if (x > 120){                                //x 120'den büyükse LEDpin1 ve LEDpin2'ye enerji(5volt) ver.
  digitalWrite(LEDpin1, HIGH);
  digitalWrite(LEDpin2, HIGH); 
}                                            // hepsi doğru

If / else, kod akışını temel if ifadesinden daha fazla kontrol etmeye izin verir; birden fazla sınamanın birlikte gruplanmasına izin verilir.

Örneğin, bir analog giriş test edilebilir ve giriş 500’den az ise bir eylem yapılır ve giriş 500 veya daha büyükse başka bir eylem yapılır.

Kod şu şekilde görünecektir:

if (degisken < 500)
{
 // eylem A
}
else
{
 // eylem B
}

Her sorgu, doğru bir sonuca varıncaya kadar bir sonraki sorguya geçecektir. Gerçekleşen bir sınama bulunursa, onunla ilişkili kod bloğu çalıştırılır ve program daha sonra tüm if / else yapısını izleyen satıra atlar.Hiçbir sınamanın doğru olmadığı kanıtlanırsa, else fonksiyonu çalıştırılır ve varsayılan davranışı belirler.

if ve else if ile çoklu işlem yaptırabiliriz. Hatta eğer bu else if / if lerin içinde koşulların bazıları aynı anda karşılanıyorsa ikisi de uygulanır. if ve else if lerin dışındaki kalan durumlar için ise else kullanırız ve else if / iflerin dışında kalan tüm durumlar için else içindeki kod çalıştırılır.

Buna dallanma denir;

if (degisken < 500)
{
 // A işlemi.
}
else if (degisken >= 1000)
{
 // B işlemi.
}
else
{
 // C işlemi.
}

Yukarıdaki örnekte dedik ki;

Eğer degisken 500 den küçük ise A işlemini,
Değişken 1000’den büyük veya eşitse B işlemini,
Bunların dışında herhangibir değerse C, işlemini yap.

Parantez içinde değerlendirilen ifadeler bir veya daha fazla operatörün kullanılmasını gerektirir:

Karşılaştırma Operatörleri:

x == y (x, y'ye eşittir)
x != y (x, y'ye eşit değildir)
x  < y (x, y'den küçüktür)
x  > y (x, y'den büyük)
x <= y (x, y'den küçük veya eşittir)
x >= y (x, y'den büyük veya eşittir)

Dikkat ! :

Yanlışlıkla tek eşit işareti kullanmamaya dikkat edin (ör. If (x = 10)). Tek eşit işaret, atama işleci olup x 10 olarak ayarlanır (x değişkenine 10 değerini koyar).

Bunun yerine, karşılaştırma işleci olan çift eşit işareti (ör. (x== 10)) kullanın ve x’in 10’a eşit olup olmadığını kontrol edin. İkinci ifade yalnızca x 10’a eşitse doğrudur, ancak önceki ifade her zaman doğrudur.

Bunun nedeni, tek eşittir operatörü kullandığımızda biz x değerini 10 olarak ayarladık. Burda doğal olarak bir sorgu olmuyor. Biz diyoruz ki “eğer x değeri 10’dur” Bu anlamsız bir şeydir.

Örnek Uygulama:

Arduino if ifadesi (Şartlı ifade Kullanımı)


NOT: Buradaki bilgiler arduino.cc sitesinden Türkçeye çevrilmiştir.
Türkçe çevirinin tüm hakları saklıdır.
Bu web sayfası sadece link olarak paylaşılabilir.
Sayfada herhangi bir hata, öneri ve yorumlarınız için iletişim kurmanızı bekleriz.


8 YORUMLAR

  1. Ardino için yazdığım kodda program kararsız kalıyor. Bir alarm yapmıştım hareket algılıyınca buzzer ve led ile bildiriyor IR kumanda bir tuşa basınca yeşil ledi açıp,kırmızı ledi kapatıp,buzzerda kapatması gerekiyordu.Ama program bunu yapmıyor kararsız kalıyor.Neden program kararsız kalıyor(if else kullandım)

    • Aslında gayet basit. Bakın yukarıdaki anlatımdan bir kısmı paylaşayım;
      “if ve else if ile çoklu işlem yaptırabiliriz. Hatta eğer bu else if / if lerin içinde koşulların bazıları aynı anda karşılanıyorsa ikisi de uygulanır. if ve else if lerin dışındaki kalan durumlar için ise else kullanırız ve else if / iflerin dışında kalan tüm durumlar için else içindeki kod çalıştırılır.”
      Şu kısmı bir kaç kez okuyup deneyerek hayal ederek uygulayın. Burdaki amaç çoklu işlem yaptırmak.

CEVAP VER

Please enter your comment!
Please enter your name here

Bu site, istenmeyenleri azaltmak için Akismet kullanıyor. Yorum verilerinizin nasıl işlendiği hakkında daha fazla bilgi edinin.