Konu : IF THEN ELSE
Yazar : Lord
Tarih : 10 Ocak 2010
Not: İstediğiniz Platformda İstediğiniz Şekilde Yayımlayabilir Hatta Ben Yazdım Diyebilirsiniz, Emeğe Saygı

IF THEN ELSE

if then else, bazı değerleri karşılaştırmak ve farklı alanlardaki karşılaştırmalara dayalı çalışmalar yapmanıza olanak

sağlamaktadır.

Basit bir şekilde Formatı,

if (v1 operatör v2) { komutlar }
elseif (v1 operatör v2) { komutlar }
else { komutlar }

şeklindedir, bunu kabataslak öğrenme adına kodlarda örnek olarak görmek daha yerinde olacaktır.

bilindiği gibi, if “eğer” demektir, else ise, “değilse, aksi halde, bu değilse” anlamlarına gelmektedir, yani kod içerisinde

üstteki if sorgusularından hiçbiri değilse işlem yap olarak tanımlayabiliriz.

eğer ( ) parantezlerde doğru bir şekilde sorgu yapılmışsa bracked { } içindeki komutlar işleme girecektir.

eğer sorgu parantez kullanılarak yapılırsa hızlı olabileceğini khaled kendisi söylemektedir.
Yani if sorgusunda parantez kullanmak, sorgunun hızlı bir şekilde yapılıp, bracked içindeki komutların parantesiz durumdan

daha erken işlem göreceği söylemektedir.

Bu sadece iç iç if sorgularında değil, diğer işlemlerde de parantez kullanılmasını Khaled önermektedir.

Operatörler

== : Eşitse

=== : Eşitse ( Büyük küçük harfe duyarlı ) [ Case-Sensitive ]

!= : Eşit değilse

< : Küçükse

> : Büyükse

>= : Büyük veya Eşitse

<= : Küçük veya Eşitse

// : v2 değeri v1 değerinin kendisi veya bir katına eşitse | if (v1 operatör v2)

\\ : v2 değeri v1 değerinin kendisine eşit ve bir katı değilse | if (v1 operatör v2)

& : Bit seviyesinde karşılaştırma

______________________________________________

isin : v1 değeri v2 değerinin içinde geçiyorsa

isincs : v1 değeri v2 değerinin içinde geçmesiyle birlikte büyük küçük harfe duyarlı olması

iswm : v1 değeri v2 değerinin içinde geçiyorsa ( Wilcard(Joker) kullanımı )

iswmcs : Wildcard kullanılarak v1 değeri v2 değerinin içinde geçmesiyle birlikte büyük küçük harfe karşı duyarlı olması

isnum : v1 değeri v2 içinde bir rakam ise, burda v2 değeri istenilirse yazılmayabilir, isteğe bağlıdır. yazılmadığı taktirde

tüm geçen rakamlar için geçerlidir.

isletter : v1 değeri v2 de bir harf ise, v2 değeri istenilirse yazılmayabilir, isteğe bağlıdır.

isalnum : Text(Metin) harf ve rakamlar içeriyorsa

isalpha : Text(Metin) sadece harf içeriyorsa

islower : Text(Metin) sadece küçük harfler içeriyorsa

isupper : Text(Metin) sadece büyük harfler içeriyorsa

ison : v1 (Nick) değeri v2 (Kanalında) değerinde bulunuyorsa

isop : v1 (Nick) değeri v2 (Kanalında) Op ise,

ishop : v1 (Nick) değeri v2 (Kanalında) HalfOp ise,

isvoice : v1 (Nick) değeri v2 (Kanalında) Voice ise,

isreg : v1 (Nick) değeri v2 (Kanalında) hiçbir Prefix’e ( ~ , & , @ , % , + ) sahip değilse,

ischan : v1 bulunduğunuz bir kanal ise,

isban : v1 (Nick|Mask) değeri v2 (Kanalının) ban listesinde ise,

isaop : v1 (Nick) değeri v2 (Kanalının) Otomatik Op Listesinde ise, ( v2 yazılmayabilir, isteğe bağlıdır)

isavoice : v1 (Nick) değeri v2 (Kanalının) Otomatik Voice Listesinde ise, ( v2 yazılmayabilir, isteğe bağlıdır)

isignore : v1 (Nick) değeri ignore Listemizde ise, ( v2 yazılmayabilir, isteğe bağlıdır)

isprotect : v1(Nick) sizin Protect yani koruma listenizde ise, (v2 yazılmayabilir, isteğe bağlıdır)

isnotify : v1(Nick) sizin Notify Listenizde ise,

Örneklerle Konu Pekiştirilmesi..

Soru 1: #mIRC Kanalıma Giren Hasan ise, “Hoş Geldin” Desin, Erdem ise “Niye Geldin” Desin, Ne Hasan ne Erdem ise, “Kanalımız Kapalı” Desin..

on !*:Join:#mIRC: {
;mIRC kanal girişinde harekete geçen giriş eventidir.
if ($nick == Hasan) { msg $chan Hoş Geldin $nick }
;eğerki giren kişi hasan ise kanala hoş geldin hasan dicek
elseif ($nick == Erdem) { msg $chan Niye Geldin $nick }
;eğerki giren kişi Hasan değilde Erdem ise, Niye Geldin Erdem diyecek
else { msg $chan Kanalımız Kapalı $nick }
;kanala giren ne Hasan ne Erdem ise, giren kişiye Kanalımız Kapalı diyecektir.
}

Burda if, elseif, else Kullanıp bu sorguda Eşittir (==) operatörünü kullandık.
————————–

Soru 2 : #mIRC Kanalına Giren Kişinin Nicki NUH Şeklinde Büyük yazılmışsa Ona Voice Vermek İstiyorum

on !*:Join:#mIRC: {
if ($nick === NUH) { mode $chan +v $nick }
}

Burda === (Büyük küçük harfe duyarlı ve eşitse) Operatörünü Kullandık.

————————–

Soru 3: #mIRC Kanalına Giren Kişi Eğerki Lord Nicki Değilse Kick Atsın.

on !*:Join:#mIRC: {
if ($nick != Lord) { kick $chan $nick <Sebep> }
}

Burda da Eşit Değilse ( != ) Operatörünü Kullandık.

————————–

Soru 4: #mIRC Kanalına Biri Girince, Eğerki Kanal Kişi Sayısı 50’den Büyükse Giren Kişiyi Atsın.

on !*:Join:#mIRC: {
if (50 < $nick(#mIRC,0)) { ban -k $chan $nick <Sebep> }
}

Burda Büyükse ( < ) Operatörünü kullandık.

————————–

Soru 5: #mIRC Kanal Sayısı 50’den Büyük veya Eşitse ve Giren Kişi Olursa, Giren Kişiyi Atsın.

on !*:Join:#mIRC: {
if (50 <= $nick(#mIRC,0)) { ban -k $chan $nick <Sebep> }
}

Burda Büyükse veya Eşitse ( <= ) Operatörünü kullandık.

—————————

Soru 6: Eğerki Bulunduğum Kanallardan #mIRC Kanalına Giriş Olursa ve Kanal Kişi Sayısı 50’dan Büyükse Kanala Msg Olarak “Global Olduk” Desin.
Bunun Yanı Sıra, Eğerki Kanal #mIRCHelp ise ve O Kanala Giren Kişinin Nicki Lord Değilse ve Nickin Karakter Toplamı 2 veya 2’nin Katıysa Voice Versin,
Yok Lord ise Hoş Geldin diye Notice Atsın.
Hem #mIRC Hemde #mIRCHelp Kanallarına Giren Kişi Lord Değilse ve Giren Kişinin Nick Karakter Sayısı 2 veya 2’nin Katı Değilse Kanaldan Atsın.

on !*:Join:#: {
if ($chan == #mIRC) && (50 < $nick(#mIRC,0)) { msg $chan global olduk }
if ($chan == #mIRCHelp) && ($nick != Lord) && (2 // $len($nick)) { mode $chan +v $nick }
if ($chan == #mIRCHelp) && ($nick == Lord) { notice $nick Hoş Geldin }
if ($istok(#mIRC #mIRCHelp,$chan,32)) && ($nick != Lord) && (2 \\ $len($nick)) { ban -k $chan $nick <Sebep> }
}

Şeklinde Katıysa ve Katı Değilse Operatörlerini Kullanımını da Gösterdik.

——————————

Soru 7: Özelime Yazan Kişi Eğerki #mIRC Kanalında Op ise “Buyur #mIRC Operatörü” Desin. Yok Op Değilse Halfop İse

“Buyur #mIRC Yardımcı Operatörü” Desin. İkisi de Değilde Voiceli İse “Seni Dinliyorum #mIRC Voice Useri” Desin. Eğerki Kanalda Hiçbir Yetkisi Yoksa “Zamanım Yok” Desin.. Yok Yazan Kişi #mIRC Kanalında Değilse ignore etsin.

on *:Open:?:*: {
if ($nick isop #mIRC) { msg $nick Buyur #mIRC Operatörü }
elseif ($nick ishop #mIRC) { msg $nick Buyur #mIRC Yardımcı Operatörü }
elseif ($nick isvoice #mIRC) { msg $nick Seni Dinliyorum #mIRC Voice Useri }
elseif ($nick isreg #mIRC) && ($nick ison #mIRC) { msg $nick Zamanım Yok }
elseif ($nick !ison #mIRC) { ignore $nick }
}

Burda isop ishop isvoice isreg ison operatörlerine değindik. Ayrıca ison operatörünün başına ünlem koyarak durumu olumlu

iken olumsuz yaptık. Yani,
if (ahmet ison #mirc) : eğerki ahmet mirc kanalındaysa
if (ahmet !ison #mirc) : eğerki ahmet mirc kanalında Değilse

operatörlerin ve identifierlerin başına ünlem koyarak cümleyi olumlu olumsuz yapabiliyoruz.

Kısacası if then else ve operatörleri böyle kullanılmaktadır. Hepsini tek tek sorularla pekiştirip öğrenmenizi tavsiye ediyorum.

Saygı ve Sevgilerimle..