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: Kodu kopyalamak için üzerine çift tıklayın!
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.)
> : Büyükse
//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: Kodu kopyalamak için üzerine çift tıklayın!
;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...