HIZLI ARAMA
| Dersler Mirc script ile ilgili dersler, yardım konuları, ipuçları. |
![]() |
| | #1 (permalink) |
| Kayıt: 03.08.2007
Mesajlar: 149 İtibar Gücü: 0 | /* if - elseif - else ve genel if else kullanımı */ if - else muhabbeti tüm programlama dillerinde kullanılır, matematikte de fonksiyon karşımıza çıkar. En basite indirgeyerek tek cümleyle güzel bir örnek vererek konuya hızlı bir giriş yapalım: Mesela bir arkadaşımız hakkında yapmasına ihtimal vermediğimiz bir olay duyduk. Bu durumda bazılarımız "eğer onu tanıyorsam, hayatta böyle birşey yapmaz" diye düşünürüz. Şimdi bu cümleyi inceleyelim. Alıntı: eğer onu tanıyorsam, hayatta böyle birşey yapmaz yaptıysa onu tanımıyorum demektir, tanımadığım biriyle arkadaş olamam Bunu if - else kullanarak yazarsak; Kod: if (ben tanıyorsam onu) { o hayatta böyle birşey yapmaz }if (o yaptıysa) { kes arkadaşlığı } Bir başka örnek, ilkokul matematik sorularından: Alinin 3 Velinin 5 elması var. Veli 1 elmasını Aliye verirse ikisinin elmaları eşit olur mu? Alıntı: eğer alinin elmasılarına 1 eklendiğinde velinin elmalarına eşit oluyorsa eşitlik olur Kod: if (ali_elma + 1 == veli_elma - 1) { eşitlik var } Son olarak da elseif kullanımına gerçek hayattan bir örnek verelim: Diyelim iki arkadaş aranızda muhabbet ediyorsunuz. Arkadaşın sana diyor ki; "Bizim Ahmet var ya Ayşeyi aldatmış, intikamını almış." Bu durumda şu şekilde bir tepki veriyorsun:"Ohoo Ahmet o kadar ufak şeyle yetinmez. Eğer intikamını tam anlamıyla almışsa kesin Ayşeyi bir güzel dövmüştür. Tam anlamıyla intikam almayıp merhamet etmişse bile en azından bir tokat atmıştır. Hiçbirini yapmadıysa da çok okkalı bir şekilde aldatmıştır." Şimdi bunu if - elseif - else'e göre derleyelim: Alıntı: eğer ahmet intikamını aldıysa ayşeyi bir güzel dövmüştür intikamını almayıp merhamet etmişse bir tokat atmıştır hiçbirini yapmamışsa çok iyi aldatmıştır mIRC'e döküyoruz: Kod: if (ahmet aldı intikam) { ahmet bir güzel dövdü ayşeyi }elseif (ahmet etti merhamet) { ahmet bir tokat attı ayşeye }else { ahmet çok iyi aldattı ayşeyi } Şimdi de tekrar elma örneğine dönüp o örneği tam anlamıyla mIRC'e döküyoruz: Kod: if ($calc(ali_elma + 1) == $calc(veli_elma - 1)) { echo -a eşitlik var } Alıntı: //$calc calculator'ın (hesap makinesi) kısaltılmışı olup hesaplama işlemlerinde kullanılır. Mantığı anlamışsınızdır umarım. Çünkü bundan sonra mIRC konuşacak ![]() if - elseif - else'in basit kullanımı şu şekildedir: Kod: if (1.değer ilişki 2.değer) { komutlar }elseif (1. değer ilişki 2.değer { komutlar }else { komutlar } Tam Türkçe olarak açıklayalım: Kod: eğer (1. değer ile 2. değer arasındaki ilişki doğruysa) { bu komutları uygula }değilse ve (1. değer ile 2. değer arasındaki ilişki bu şekildeyse) { şu komutları uygula }yukarılardakilerden hiçbiri uygun değilse { bu komutları uygula } Şimdi değerler arasındaki ilişkileri listeleyelim: == eşittir === eşittir (*) != eşit değildir < küçüktür > büyüktür >= büyüktür veya eşittir <= küçüktür veya eşittir // katlarından biridir \\ katlarından biri değildir isin 1. değer 2. değerin içinde geçiyorsa isincs 1. değer 2. değerin içinde geçiyorsa (*) iswm 1. wildcard değeri 2. değerin içinde geçiyorsa (**) iswmcs 1. wildcard değeri 2. değerin içinde geçiyorsa (**) isnum 1. değer 2. değerde belirtilen sayılar arasındaki bir değerse veya 1. değer bir sayıysa isletter 1. değer 2. değerde belirtilen harflerden biriyse veya 1. değer bir harfse isalnum değer sadece harf ve rakamlardan oluşuyorsa isalpha değer sadece harflerden oluşuyorsa islower değer sadece küçük harflerden oluşuyorsa isupper değer sadece büyük harflerden oluşuyorsa ison 1. değer 2. değerde belirtilen kanaldaki bir nickse isop 1. değer 2. değerde belirtilen kanalda opsa ishop 1. değer 2. değerde belirtilen kanalda bir half-opsa isvoice 1. değer 2. değerde belirtilen kanalda voice durumundaysa isreg 1. değer 2. değerde belirtilen kanalda user durumundaysa yani op voice halfop vs değilse (***) ischan 1. değer benim bulunduğum kanallardan biriyse isban 1. değer dahili ban listesinde (internal ban list - hafızada tutulan banlar) mevcutsa isaop 1. değer 2. değerde belirtilen kanal için otomatik op listesindeyse (***) isavoice 1. değer 2. değerde belirtilen kanal için otomatik voice listesindeyse (***) isignore 1. değer 2. değerde verilen parametrelerle ignore listesindeyse (***) isprotect 1. değer 2. değerde belirtilen kanal için koruma listesindeyse (***) isnotify 1. değer notify listesindeyse * Case Sensitive olarak kullanılır. Yani büyük küçük harf uyumuna dikkat edilir. Örneğin %x değeri AsDeF ise %x == asdef ilişkisi doğruyken, %x === asdef ilişkisi doğru olmayacaktır. %x === AsDeF olması gerekir. ** Wildcard hakkında detaylı bilgiyi forumda bulabilirsiniz. *** 2. değer belirtilmediği durumlarda olayın geçtiği kanal, nick, metin, parametre vs göz önünde bulundurulmadan işlem yapılır, veya uygun olan tek bir değer varsa otomatik olarak verilir. İlişkiyi tersine çevirmek için de ! işareti kullanılır. Örneğin; Kod: if (ali ison #sex) { msg ali sen sapık mısın? } Ali #sex kanalındaysa Ali'ye sen sapık mısın? diye mesaj at Kod: if (ali !ison #sex) { msg ali noldu bugün sapıklık yapmıyor musun? } Ali #sex kanalında değilse Ali'ye noldu bugün sapıklık yapmıyor musun? diye mesaj at. İki veya daha fazla ilişkinin birlikte olduğu durumlarda && işareti kullanılır. Örneğin: Kod: if (ali isop #bay) && (ali isop #bayan) { msg ali Gay misin hayırdır? } Eğer Ali #bay kanalında op ise ve aynı zamanda ali #bayan kanalında da op ise Ali'ye Gay misin hayırdır? diye mesaj at |
| | |
| | #2 (permalink) |
| Kayıt: 03.08.2007
Mesajlar: 149 İtibar Gücü: 0 | Yukarıdaki anlatımı basit olarak if - else ve ilişki belirteçleri hakkında en alt düzeyde eğitim vermek için yazmıştım. Şimdi ilişkiler bölümündeki değerleri örneklendirerek merdivenleri tırmanmaya başlayalım ![]() == ve === ilişkisini birlikte kullanarak hem kullanımını hem de arasındaki farkı anlatmış olacağım bir örnekle başlıyorum. Örnek olarak script'imize bir şifre koyduk diyelim. Bu şifreyi doğru yazdığında script açılacak, yanlış yazdığında da bir takım tepkiler verecek. Bu durumda yapacağımız şey öncelikle şifremizi %sifre diye bir değere kaydetmektir. Daha sonra yazılan şifrenin doğru olup olmadığını kontrol eden bir kod yazmamız gerekiyor. Önce if-elseif-else kullanarak yazalım: Kod: alias sifre { var %sifre = AsD if ($1 === %sifre) { echo -a Şifre kabul edildi. | halt } elseif ($1 == %sifre) { echo -a Lütfen şifreyi büyük küçük harf uyumuna göre giriniz. | halt } else { echo -a Yanlış şifre girdiğiniz. }} Kodun açıklamasına gelince: * Öncelikle sadece /sifre komutu için geçerli olacak, %sifre adında ve karşılığı AsD olan bir değer oluşturuyoruz. * Eğer /sifre komutuyla birlikte girilen 1. değer, yani $1, büyük küçük harfleri de dikkate alarak tamamen eşit ise (===), kullanıcının şu an baktığı pencereye şifre kabul edildi diye bir mesaj yaz, ve komutu durdur. * Eğer yukarıdaki satırda yazdığı gibi, tam anlamıyla eşit değilse ve büyük küçük harf durumu dışında bir eşitlik var ise (==), kullanıcının şu an baktığı pencereye lütfen şifreyi büyük küçük harf uyumuna göre giriniz diye bir mesaj yaz, ve komutu durdur. * Hiçbiri değilse, kullanıcının şu an baktığı pencereye yanlış şifre girdiniz diye bir mesaj yaz. Şimdi de kodu eşit değildir (!=) ilişkisine göre düzenleyelim: Kod: alias sifre { var %sifre = AsD if ($1 === %sifre) { echo -a Şifre kabul edildi. | halt } if ($1 == %sifre) { echo -a Lütfen şifreyi büyük küçük harf uyumuna göre giriniz. | halt } if ($1 != %sifre) { echo -a Yanlış şifre girdiğiniz. }} Bu kodda ise eğer böyleyse, böyle değil de şöyleyse muhabbeti yerine böyleyse şöyle yap, şöyleyse böyle yap diye kullandık. Fakat değişik olarak eşit değildir ilişkisini kullanarak ona da örnek vermiş olduk. |
| | |
| | #3 (permalink) |
| Kayıt: 03.08.2007
Mesajlar: 149 İtibar Gücü: 0 | Matematikte kullandığımız büyüktür küçüktür vs işaretleri ne işimize yarayacak diye soranlar olmuştur, hatta dersi dinlemeyip dalga geçenler bile olabilir. Fakat her programlama dilinde if gibi bu işaretler de karşımıza çıkabilir ![]() Bu ilişkinin en çok kullanıldığı yer kesinlikle loop'lardır. Fakat ondan önce while kullanmayı veya goto kullanmayı anlatmak gerekir. Onun yerine hoş bir sayı tahmin etme oyunu kodlayalım. Oyunu herkes biliyordur herhalde, 1'den 99'a kadar bir sayı belirlersiniz, ve karşınızdaki tahmin etmeye çalışır. Şimdi kodlamaya geçelim: Kod: alias tahmin { if ($1 == $null) { set %sayi $r(1,99) | echo -a Evet oyun başladı. Tahmini "/tahmin sayı" şeklinde ilet. | halt } if ($1 == %sayi) { echo -a Tebrikler, doğru tahmin! Tekrar oynamak için /tahmin yaz. | unset %sayi | halt } if ($1 < %sayi) { echo -a Çık. | halt } if ($1 > %sayi) { echo -a Düş. | halt } if ($1 !isnum) { echo -a Sayı tahmin oyunu oynadığımızı sanıyordum? | halt } if ($1 !isnum 1-99) { echo -a Tahminini 1'den 99'a kadar olan sayılar arasından yapmalısın. | halt }} Notlar: * Tahminde bulunmak için "/tahmin sayı" yazın. Örnek: /tahmin 50 * Sadece "/tahmin" yazarsanız hafızadaki sayı silinir, oyun tekrar başlar. Kodumuz bu şekilde oluyor. Şimdi de açıklamaya geçelim: * Eğer 1. değer boş ise, yani komut sadece /tahmin olarak girilmişse ve arkasından bir değer girilmemiş ise, değeri 1'den 99'a kadar herhangi bir sayı olacak şekilde %sayi isminde bir değer oluştur ve aktif pencereye evet oyun başladı diye bir mesaj yayınlayıp komutu durdur. * Eğer 1. değer %sayi değerine eşit ise, aktif pencereye tebrikler diye bir mesaj yayınla ve %sayi değerini silip komutu durdur. * Eğer 1. değer %sayi değerinden küçük ise, aktif pencereye çık diye bir mesaj yayınlayıp komutu durdur. * Eğer 1. değer %sayi değerinden büyük ise, aktif pencereye düş diye bir mesaj yayınlayıp komutu durdur. * Eğer 1. değer bir sayı değil ise, aktif pencereye sayı tahmin oyunu oynadığımızı sanıyordum diye bir mesaj yayınlayıp komutu durdur. * Eğer 1. değer 1'den 99'a kadar bir sayı değil ise, aktif pencereye sayı 1'den 99'a kadar olmalı diye bir mesaj yayınlayıp komutu durdur. Şimdi yukarıdaki kodda değişiklik yapıp "çok yaklaştın, biraz daha düş, biraz daha çık" diye bir mesaj ekleyelim ve <= >= kullanımına örnek verelim. Kod: alias tahmin { if ($1 == $null) { set %sayi $r(1,99) | echo -a Evet oyun başladı. Tahmini "/tahmin sayı" şeklinde ilet. | halt } if ($1 == %sayi) { echo -a Tebrikler, doğru tahmin! Tekrar oynamak için /tahmin yaz. | unset %sayi | halt } if ($1 < %sayi) { if ($1 >= $calc(%sayi - 5)) { echo -a Çok yaklaştın, biraz daha çık! | halt } else { echo -a Çık. | halt } } if ($1 > %sayi) { if ($1 <= $calc(%sayi + 5)) { echo -a Çok yaklaştın, biraz daha düş! | halt } else { echo -a Düş. | halt } } if ($1 !isnum) { echo -a Sayı tahmin oyunu oynadığımızı sanıyordum? | halt } if ($1 !isnum 1-99) { echo -a Tahminini 1'den 99'a kadar olan sayılar arasından yapmalısın. | halt } }Kodda yaptığımız değişiklik değerin %sayi değerinden küçük olması durumuna ek olarak 1. değerin %sayi değerinin 5 eksiğinden büyük olmasını da dahil ettik. 1. değerin %sayi değerinden büyük olması durumuna da ek olarak %sayi değerinin 5 fazlasından küçük olmasını da dahil ettik. Bunu da örnek vererek özetleyeyim, eğer hafızadaki sayı 40 ise, 40'tan küçük ve 40'ın 5 eksiğinden yani 35'ten büyük sayılarda çok yaklaştın biraz daha çık, 40'tan büyük ve 40'ın 5 fazlasından yani 45'ten küçük sayılarda da çok yaklaştın biraz daha düş demesini sağladık. Not: Son eklemeyi yaparken isnum da kullanabilirdik. Hazırlayan, Utku . |
| | |
![]() |
| Konuyu Toplam 1 Üye okuyor. (0 Kayıtlı üye ve 1 Misafir) | |
| Seçenekler | |
| Stil | |
| |
Benzer Konular | ||||
| Konu | Konuyu Başlatan | Kategori | Cevaplar | Son Mesaj |
| Msn Space Scrollbar Kullanımı | Mr.CoWbOy | Msn Space | 0 | 28-12-2007 18:32 |
| Hamilelikte ilaç kullanımı | SweetWitch | Anne ve Çocuk | 0 | 03-09-2007 11:30 |
| Genel-İş Sendikası Genel Başkanı toprağa verildi | Haberci | Son Dakika Haberleri | 0 | 29-07-2007 14:50 |
| Bilinçli internet kullanımı | **Zerd@** | Bilelim Öğrenelim | 1 | 06-02-2007 23:19 |
| .htaccess kullanımı ve ipuçları | Kr㣠| Webmaster Genel | 2 | 12-12-2006 12:16 |