Neler yeni

If-then-else statements

Disket

Moderatör
Katılım
24 Nis 2019
Mesajlar
1,000
Tepkime puanı
3
Konum
Ankara
Döküman sahibi: Paint
Konu: Koşul ifadeleri ve Operatörler
Tarih: 19.05.2012

Helpethos.net Dökümanıdır.

Merhabalar,

If komutu değerleri karşılaştırmamızı ve bu değerler sonucunda işlem yapma olanağı sağlar.

IF anlam olarak eğer, else ise değilse olarak çevrilebilir.

En basitten başlayalım:
Kod:
if (v1 operator v2) { komutlar1 }
elseif (v1 operator v2) { komutlar2 }
else { komutlar3 }
Yukarıda yapmak istediğimiz olay:
Satır 1: Eğer satır 1 deki koşul doğru ise komutlar 1'i uygula.
Satır 2: Eğer ilk satırdaki koşul doğru değilse ve ikinci satırdaki koşul doğru ise komutlar 2'yi uygula.
Satır 3: Eğer hiç bir komut doğru değilse komutlar3'ü uygula...


Not: Parantezler olmadanda kod çalışır fakat farkedilemeyecek kadar olsada yavaş olur, ayriyeten parantezler kodunuzu okuyan birisinin anlamasını kolaylaştırır.

Not2: İç içe istediğiniz kadar IF-ElseIF-ELSE kullanabilirsiniz.

Peki şimdi "if (v1 operator v2) { komutlar1 }" buradaki operator ne anlama geliyormuş ve operatorler nelermiş buna bakalım.

Operators

IF-ElseIF-ELSE komutlarını basit olsada anlattık daha iyi anlamak için örnekler yapmanız gerek.

Operatorler IF ve ELSEIF komutlarında kullanılır, operatörler bir çok koşulu sorgularken gereklidir.

--
== : Eşitse
//if Paint == paint { echo -a Değer1: $v1 Değer2: $v2 eşit. } (Sonuç: Değer1: Paint Değer2: paint eşit.)
//if Paint == AmiR { echo -a Değer1: $v1 Değer2: $v2 eşit. } (Sonuç: Paint AmiR e eşit olmadığı için hiç birşey dönmez.)

=== : Eşitse ( Büyük-Küçük harf duyarlı | Case sensitive )
//if Paint === Paint { echo -a Değer1: $v1 Değer2: $v2 eşit. } (Sonuç: Değer1: Paint Değer2: Paint eşit.)
//if Paint == paint { echo -a Değer1: $v1 Değer2: $v2 eşit. } (Sonuç: v2 deki paint yazısının ilk harfi küçük olduğu için hiç birşey dönmez.)

!= : Eşit değilse
//if Paint != Kaint { echo -a Değer1: $v1 Değer2: $v2 eşit. } (Sonuç: Değer1: Paint Değer2: Kaint eşit değil.)
//if Paint === Paint { echo -a Değer1: $v1 Değer2: $v2 eşit. } (Sonuç: v1 ve v2 eşit olduğu için birşey dönmez.)

< : Küçükse
//if 1 < 2 { echo -a Evet küçük. } (Sonuç: Evet küçük.)
//if 3 < 2 { echo -a Evet küçük. } (Sonuç: 3 sayısı 2 den büyük olduğu için birşey olmaz.)

//if 3 < 2 { echo -a Evet büyük. } (Sonuç: Evet büyük.)
//if 1 < 2 { echo -a Evet küçük. } (Sonuç: 1 sayısı 2 den büyük olmadığı için sonuç gelmez.)

= : Büyük veya eşitse
//if 3 >= 2 { echo -a Evet büyük. } (Sonuç: Evet büyük.)

<= : Küçük veya eşitse
//if 1 <= 2 { echo -a Evet küçük. } (Sonuç: Evet küçük.)

// :v2 değeri v1 e eşitse veya katıysa.
Sonuç dönenler:
//if 2 // 2 { echo -a v2: $v2 değeri v1: $v1 değerine eşit veya katı. }
//if 2 // 4 { echo -a v2: $v2 değeri v1: $v1 değerine eşit veya katı. }
Sonuç dönmeyenler:
//if 3 // 4 { echo -a v2: $v2 değeri v1: $v1 değerine eşit veya katı. }

\\ :v2 değeri v1 e eşit veya katı değilse.
Sonuç dönenler:
//if 3 // 4 { echo -a v2: $v2 değeri v1: $v1 değerine eşit veya katı değil. }
Sonuç dönmeyenler:
//if 2 // 2 { echo -a v2: $v2 değeri v1: $v1 değerine eşit veya katı. }

& : Bit seviyesinde karşılaştırma
Bunu açıklaması oldukça uzun ayrı bir ders gerekir o yüzden hiç girmiyorum.

---
isin : v1 değeri v2'nin içinde geçiyorsa.
Cevabı $true dönenler:
//if paint isin paintci { echo -a $true }
//if Reply isin Reply { echo -a $true }
Cevap dönmeyenler:
//if HelpEthos isin Ethos { echo -a $false }

isincs : v1 değeri v2'nin içinde geçiyorsa. (case sensitive)
Cevabı $true dönenler:
//if Reply isin Reply { echo -a $true }
Cevap dönmeyenler:
//if Reply isin reply { echo -a $false }

iswm : v1 değerini v2'nin içinde sorgulama. (Wildcard destekli.)
Cevabı $true dönenler:
//if repl* iswm reply { echo -a $true }
//if epl iswm reply { echo -a $true }
//if e?l iswm reply { echo -a $true }
Cevap dönmeyenler:
//if replu* iswm reply { echo -a $false }

iswmcs : v1 değerini v2'nin içinde sorgulama. (Wildcard destekli.) (case sensitive)
Cevabı $true dönenler:
//if Repl* iswmcs Reply { echo -a $true }
Cevap dönmeyenler:
//if Repl* iswmcs reply { echo -a $false }

isnum : v1 eğer sayı ise. Bu operatorde v2 zorunlu değildir v2 yazarsanız operatorun anlamı v1 sayısı v2 aralığında ise burda v2 yi sayı1-sayı2 şeklinde yazmalısınız.
Cevabı $true dönenler:
//if 1 isnum { echo -a $true }
//if 5 isnum 4-6 { echo -a $true }
//if 51 isnum 5- { echo -a $true }
Cevap dönmeyenler:
//if a isnum { echo -a $false }
//if 5 isnum 1-3 { echo -a $false }

isletter : isnum operatorünün sayı yerine harf şekli.
Cevabı $true dönenler:
//if A isletter { echo -a $true }
//if c isletter ac { echo -a $true }
Cevap dönmeyenler:
//if 11 isletter { echo -a $false }
//if c isletter db { echo -a $false }

isalnum : Metin sadece harf ve rakamlar içeriyorsa.
Cevabı $true dönenler:
//if Metin43 isalnum { echo -a $true }
//if metinci isalnum { echo -a $true }
Cevap dönmeyenler:
//if metin½ isalnum { echo -a $false }

isalpha : Metin sadece harf içeriyorsa.
Cevabı $true dönenler:
//if metin isalpha { echo -a $true }
Cevap dönmeyenler:
//if metin58 isalpha { echo -a $false }

islower : Metin sadece küçük harfler içeriyorsa.
Cevabı $true dönenler:
//if metinci islower { echo -a $true }
Cevap dönmeyenler:
//if Metinci islower { echo -a $false }

isupper : Metin sadece büyük harfler içeriyorsa.
Cevabı $true dönenler:
//if PAINT isupper { echo -a $true }
Cevap dönmeyenler:
//if Paint isupper { echo -a $false }

----

ison : v1 deki Nick v2 de yazan kanalda bulunuyorsa.
Kullanım: //if v1 ison v2 { komutlar }

isop : v1 deki Nick v2 de yazan kanalda opsa.
Kullanım: //if v1 isop v2 { komutlar }

ishop : v1 deki Nick v2 de yazan kanalda halfopsa.
Kullanım: //if v1 ishop v2 { komutlar }

isvoice : v1 deki Nick v2 de yazan kanalda voice sahibiyse.
Kullanım: //if v1 isvoice v2 { komutlar }

isreg : v1 deki Nick v2 de yazan kanalda yetki sahibi değilse yani voicesi bile yoksa
Kullanım: //if v1 isreg v2 { komutlar }

ischan : v1 bulunduğunuz bir kanal ise
Kullanım: //if v1 ischan { komutlar }

isban : v1 deki mask v2 de yazan kanalda ban listesinde varsa
Kullanım: //if v1 isban v2 { komutlar }

-----

isaop : v1 de yazan nick v2 kanalı için auto-op listesinde ise ( v2 opsiyonel )
Kullanım: //if v1 isaop v2 { komutlar }

isavoice : v1 de yazan nick v2 kanalı için auto-voice listesinde ise ( v2 opsiyonel )
Kullanım: //if v1 isavoice v2 { komutlar }

isignore : v1 de yazan mask ignore listesinde v2 de yazan parametre ile eklenmişse. ( v2 opsiyonel )
//if v1 isigonre v2 { komutlar }

isprotect : v1 de yazan nick v2 kanalı için protect listesinde ise ( v2 opsiyonel
Kullanım: //if v1 isaprotect v2 { komutlar }

isnotify : v1 de yazan nick notify listenizde varsa
//if v1 isnotify { komutlar }

Önemli NOT: Bir operatörü olumsuz biçime çevirmek için operatörün başına ! ekleyin.
Örnek: !isop, !ishop, !isin, !isignore
-
Not: //if DENEME == HELPETHOS { ECHO -a $FALSE }
Burada $v1 DENEME $v2 HELPETHOS olarak dönecektir.
-
ÖNEMLİ:
Tek if komutuyla birden fazla sorgulamayı aynı anda yapmak için || veya && kullanabilirsiniz.
|| anlam olarak veya olarak çevrilebilir.
&& ise ve olarak çevrilebilir.

Kullanımları:
//if v1 isin v2 && v3 isop v4 { echo -a $true } Anlamı: v1 yazısı v2'nin içinde geçiyorsa ve v3 nicki v4 kanalında opsa ekrana $true yaz.

//if v1 isin v2 || v3 isop v4 { echo -a $true } Anlamı: v1 yazısı v2'nin içinde geçiyorsa veya v3 nicki v4 kanalında opsa ekrana $true yaz.



$IIF

$iif identifieri daha hızlı koşul sorgulamamızı sağlar.

Kullanımı:
$iif(koşul,doğru ise komutlar, yanlış ise komutlar)

Örnek:
Kod:
;Birisi !iif yazarsa
on *:text:!iif:*:{
;Eğer $chan identifierı bir şey döndürüyorsa %gönderim variablesini dönen yazı yap döndermiyorsa $nick ten dönen yazı yap
  set %gönderim $iif($chan,$chan,$nick)
;Eğer kanaldan gelmişse mesaj kanala IIF yaz özelden geldiyse gönderen kişinin özeline yaz.
  msg %gönderim IIF
}
Benden bu kadar gerisi sizin yaptığınız pratiklere bağlı. Okuduğunuz için teşekkürler.

Kodlamaktan ve sorgulamaktan korkmayın...
Döküman sahibi: Paint
Konu: Koşul ifadeleri ve Operatörler
Tarih: 19.05.2012

Helpethos.net Dökümanıdır.

Merhabalar,

If komutu değerleri karşılaştırmamızı ve bu değerler sonucunda işlem yapma olanağı sağlar.

IF anlam olarak eğer, else ise değilse olarak çevrilebilir.

En basitten başlayalım:
Kod:
if (v1 operator v2) { komutlar1 }
elseif (v1 operator v2) { komutlar2 }
else { komutlar3 }
Yukarıda yapmak istediğimiz olay:
Satır 1: Eğer satır 1 deki koşul doğru ise komutlar 1'i uygula.
Satır 2: Eğer ilk satırdaki koşul doğru değilse ve ikinci satırdaki koşul doğru ise komutlar 2'yi uygula.
Satır 3: Eğer hiç bir komut doğru değilse komutlar3'ü uygula...


Not: Parantezler olmadanda kod çalışır fakat farkedilemeyecek kadar olsada yavaş olur, ayriyeten parantezler kodunuzu okuyan birisinin anlamasını kolaylaştırır.

Not2: İç içe istediğiniz kadar IF-ElseIF-ELSE kullanabilirsiniz.

Peki şimdi "if (v1 operator v2) { komutlar1 }" buradaki operator ne anlama geliyormuş ve operatorler nelermiş buna bakalım.

Operators

IF-ElseIF-ELSE komutlarını basit olsada anlattık daha iyi anlamak için örnekler yapmanız gerek.

Operatorler IF ve ELSEIF komutlarında kullanılır, operatörler bir çok koşulu sorgularken gereklidir.

--
== : Eşitse
//if Paint == paint { echo -a Değer1: $v1 Değer2: $v2 eşit. } (Sonuç: Değer1: Paint Değer2: paint eşit.)
//if Paint == AmiR { echo -a Değer1: $v1 Değer2: $v2 eşit. } (Sonuç: Paint AmiR e eşit olmadığı için hiç birşey dönmez.)

=== : Eşitse ( Büyük-Küçük harf duyarlı | Case sensitive )
//if Paint === Paint { echo -a Değer1: $v1 Değer2: $v2 eşit. } (Sonuç: Değer1: Paint Değer2: Paint eşit.)
//if Paint == paint { echo -a Değer1: $v1 Değer2: $v2 eşit. } (Sonuç: v2 deki paint yazısının ilk harfi küçük olduğu için hiç birşey dönmez.)

!= : Eşit değilse
//if Paint != Kaint { echo -a Değer1: $v1 Değer2: $v2 eşit. } (Sonuç: Değer1: Paint Değer2: Kaint eşit değil.)
//if Paint === Paint { echo -a Değer1: $v1 Değer2: $v2 eşit. } (Sonuç: v1 ve v2 eşit olduğu için birşey dönmez.)

< : Küçükse
//if 1 < 2 { echo -a Evet küçük. } (Sonuç: Evet küçük.)
//if 3 < 2 { echo -a Evet küçük. } (Sonuç: 3 sayısı 2 den büyük olduğu için birşey olmaz.)

//if 3 < 2 { echo -a Evet büyük. } (Sonuç: Evet büyük.)
//if 1 < 2 { echo -a Evet küçük. } (Sonuç: 1 sayısı 2 den büyük olmadığı için sonuç gelmez.)

= : Büyük veya eşitse
//if 3 >= 2 { echo -a Evet büyük. } (Sonuç: Evet büyük.)

<= : Küçük veya eşitse
//if 1 <= 2 { echo -a Evet küçük. } (Sonuç: Evet küçük.)

// :v2 değeri v1 e eşitse veya katıysa.
Sonuç dönenler:
//if 2 // 2 { echo -a v2: $v2 değeri v1: $v1 değerine eşit veya katı. }
//if 2 // 4 { echo -a v2: $v2 değeri v1: $v1 değerine eşit veya katı. }
Sonuç dönmeyenler:
//if 3 // 4 { echo -a v2: $v2 değeri v1: $v1 değerine eşit veya katı. }

\\ :v2 değeri v1 e eşit veya katı değilse.
Sonuç dönenler:
//if 3 // 4 { echo -a v2: $v2 değeri v1: $v1 değerine eşit veya katı değil. }
Sonuç dönmeyenler:
//if 2 // 2 { echo -a v2: $v2 değeri v1: $v1 değerine eşit veya katı. }

& : Bit seviyesinde karşılaştırma
Bunu açıklaması oldukça uzun ayrı bir ders gerekir o yüzden hiç girmiyorum.

---
isin : v1 değeri v2'nin içinde geçiyorsa.
Cevabı $true dönenler:
//if paint isin paintci { echo -a $true }
//if Reply isin Reply { echo -a $true }
Cevap dönmeyenler:
//if HelpEthos isin Ethos { echo -a $false }

isincs : v1 değeri v2'nin içinde geçiyorsa. (case sensitive)
Cevabı $true dönenler:
//if Reply isin Reply { echo -a $true }
Cevap dönmeyenler:
//if Reply isin reply { echo -a $false }

iswm : v1 değerini v2'nin içinde sorgulama. (Wildcard destekli.)
Cevabı $true dönenler:
//if repl* iswm reply { echo -a $true }
//if epl iswm reply { echo -a $true }
//if e?l iswm reply { echo -a $true }
Cevap dönmeyenler:
//if replu* iswm reply { echo -a $false }

iswmcs : v1 değerini v2'nin içinde sorgulama. (Wildcard destekli.) (case sensitive)
Cevabı $true dönenler:
//if Repl* iswmcs Reply { echo -a $true }
Cevap dönmeyenler:
//if Repl* iswmcs reply { echo -a $false }

isnum : v1 eğer sayı ise. Bu operatorde v2 zorunlu değildir v2 yazarsanız operatorun anlamı v1 sayısı v2 aralığında ise burda v2 yi sayı1-sayı2 şeklinde yazmalısınız.
Cevabı $true dönenler:
//if 1 isnum { echo -a $true }
//if 5 isnum 4-6 { echo -a $true }
//if 51 isnum 5- { echo -a $true }
Cevap dönmeyenler:
//if a isnum { echo -a $false }
//if 5 isnum 1-3 { echo -a $false }

isletter : isnum operatorünün sayı yerine harf şekli.
Cevabı $true dönenler:
//if A isletter { echo -a $true }
//if c isletter ac { echo -a $true }
Cevap dönmeyenler:
//if 11 isletter { echo -a $false }
//if c isletter db { echo -a $false }

isalnum : Metin sadece harf ve rakamlar içeriyorsa.
Cevabı $true dönenler:
//if Metin43 isalnum { echo -a $true }
//if metinci isalnum { echo -a $true }
Cevap dönmeyenler:
//if metin½ isalnum { echo -a $false }

isalpha : Metin sadece harf içeriyorsa.
Cevabı $true dönenler:
//if metin isalpha { echo -a $true }
Cevap dönmeyenler:
//if metin58 isalpha { echo -a $false }

islower : Metin sadece küçük harfler içeriyorsa.
Cevabı $true dönenler:
//if metinci islower { echo -a $true }
Cevap dönmeyenler:
//if Metinci islower { echo -a $false }

isupper : Metin sadece büyük harfler içeriyorsa.
Cevabı $true dönenler:
//if PAINT isupper { echo -a $true }
Cevap dönmeyenler:
//if Paint isupper { echo -a $false }

----

ison : v1 deki Nick v2 de yazan kanalda bulunuyorsa.
Kullanım: //if v1 ison v2 { komutlar }

isop : v1 deki Nick v2 de yazan kanalda opsa.
Kullanım: //if v1 isop v2 { komutlar }

ishop : v1 deki Nick v2 de yazan kanalda halfopsa.
Kullanım: //if v1 ishop v2 { komutlar }

isvoice : v1 deki Nick v2 de yazan kanalda voice sahibiyse.
Kullanım: //if v1 isvoice v2 { komutlar }

isreg : v1 deki Nick v2 de yazan kanalda yetki sahibi değilse yani voicesi bile yoksa
Kullanım: //if v1 isreg v2 { komutlar }

ischan : v1 bulunduğunuz bir kanal ise
Kullanım: //if v1 ischan { komutlar }

isban : v1 deki mask v2 de yazan kanalda ban listesinde varsa
Kullanım: //if v1 isban v2 { komutlar }

-----

isaop : v1 de yazan nick v2 kanalı için auto-op listesinde ise ( v2 opsiyonel )
Kullanım: //if v1 isaop v2 { komutlar }

isavoice : v1 de yazan nick v2 kanalı için auto-voice listesinde ise ( v2 opsiyonel )
Kullanım: //if v1 isavoice v2 { komutlar }

isignore : v1 de yazan mask ignore listesinde v2 de yazan parametre ile eklenmişse. ( v2 opsiyonel )
//if v1 isigonre v2 { komutlar }

isprotect : v1 de yazan nick v2 kanalı için protect listesinde ise ( v2 opsiyonel
Kullanım: //if v1 isaprotect v2 { komutlar }

isnotify : v1 de yazan nick notify listenizde varsa
//if v1 isnotify { komutlar }

Önemli NOT: Bir operatörü olumsuz biçime çevirmek için operatörün başına ! ekleyin.
Örnek: !isop, !ishop, !isin, !isignore
-
Not: //if DENEME == HELPETHOS { ECHO -a $FALSE }
Burada $v1 DENEME $v2 HELPETHOS olarak dönecektir.
-
ÖNEMLİ:
Tek if komutuyla birden fazla sorgulamayı aynı anda yapmak için || veya && kullanabilirsiniz.
|| anlam olarak veya olarak çevrilebilir.
&& ise ve olarak çevrilebilir.

Kullanımları:
//if v1 isin v2 && v3 isop v4 { echo -a $true } Anlamı: v1 yazısı v2'nin içinde geçiyorsa ve v3 nicki v4 kanalında opsa ekrana $true yaz.

//if v1 isin v2 || v3 isop v4 { echo -a $true } Anlamı: v1 yazısı v2'nin içinde geçiyorsa veya v3 nicki v4 kanalında opsa ekrana $true yaz.



$IIF

$iif identifieri daha hızlı koşul sorgulamamızı sağlar.

Kullanımı:
$iif(koşul,doğru ise komutlar, yanlış ise komutlar)

Örnek:
Kod:
;Birisi !iif yazarsa
on *:text:!iif:*:{
;Eğer $chan identifierı bir şey döndürüyorsa %gönderim variablesini dönen yazı yap döndermiyorsa $nick ten dönen yazı yap
  set %gönderim $iif($chan,$chan,$nick)
;Eğer kanaldan gelmişse mesaj kanala IIF yaz özelden geldiyse gönderen kişinin özeline yaz.
  msg %gönderim IIF
}
 
Üst