Discord sunucumuz açılmıştır, hepinizi bekleriz

https://discord.gg/43gGDQe6tS

Pawn Dili İfade ve Döngüler - Bölüm : 1

Hazır fonksiyonlar, kütüphaneler, düzenleme programları/araçları/gereçleri, editörler kısacası geliştirme ortamı

Moderatör: Moderatörler

Kullanıcı avatarı

Konu Sahibi
amad
Mesajlar: 1809
Kayıt: Cmt Nis 30, 2016 2:46 pm
Konum: Batman
Clan İsmi: Ke$`h | Gaming
İletişim:

Pawn Dili İfade ve Döngüler - Bölüm : 1

Mesaj gönderen amad »

Tüm programlama dillerinde olduğu gibi pawn dilinin de ifade ve döngüleri bulunmaktadır. Bu ifade ve döngüler aşağı yukarı tüm programlama dillerinde bulunmakta ve benzerlik göstermektedirler. Bu başlık altında inceleyeceğimiz ifadeler if-else, switch-case; inceleyeceğimiz döngüler ise for, while ve do-while şeklinde olacaktır.

BÖLÜM - 1 : İfadeler

if ifademiz bir koşulun sağlanıp sağlanmadığı durumları kontrol etmemize imkan sağlıyor. Mantıksal işlemlerin sonucu 1 (true) veya 0 (false) dır. if komutumuzun yanındaki koşul sağlandığı takdirde true yani 1 değeri döner. Bu true değerinin dönmesi, ifademizin altındaki kod bloğunun sistem tarafından okunacağı anlamına gelmektedir. Örnek verecek olursak:

Kod: Tümünü seç

new x = 5;
if(x > 10) {
   //kod
} // x'e ilk değer olarak 5 verdik.  (5 > 10) sonucunda false değeri döndü dolayısıyla ifadenin altındaki satır okunmadı.
else if ifadesi, if ile tamamen aynı görevi görür tek fark if ile belirilten koşulun sağlanmadığı durumda okunmasıdır. Burada dikkat etmemiz gereken nokta ise else ifadelerini sadece bir if ifadesinin altında kullanabiliyor olmamızdır.

Kod: Tümünü seç

new x = 5;
if(x > 10) {
   //kod
}
else if(x == 5) {
   //kod
}
//  x'e ilk değer olarak 5 verdik.  (5 > 10) sonucunda false değeri döndü ve if ifadesinin kod bloğu okunmadı. 
Üstteki koşul sağlanmadığı için else if ifadesi okundu ve true değeri döndü. Eğer if ifadesinde true değeri dönseydi else if okunmayacaktı.
else ifadesi ise kendinden önce gelen if veya else if ifadelerinin sağlanmadığı durumda okunmaktadır.

Kod: Tümünü seç

new x = 10;
if(x > 10) { // Eğer x değeri 10'dan büyükse yaz.
   // yaz()
}
else if(x == 5) { // Eğer x değeri 10'dan büyük değil de 5'e eşitse ciz.
  // ciz()
}
else { // Eğer üsttekilerin hiçbiri de değilse oku.
  // oku()
}
Bonus Örnek :

Kod: Tümünü seç

new x = 100;
if(x < 100 && x > 50) { // Eğer x 100'den küçük ve 50'den büyükse uyu.
	// uyu()
}
else if(x < 10 || x == 50) { // Eğer üstteki değilse de x 10'dan küçük veya 50'ye eşitse yat.
	// yat()
}
else { // Eğer üsttekilerin tümü de doğru değilse uzan.
	// uzan();
}
switch ifadesi yanına aldığı değişkenin değerini varsa uygun case'ye eğer yoksa sadece default: etiketi altına iletir.

Kod: Tümünü seç

new x = 10;
switch(x) {
	case 1: { // x değeri 1 ise koş.
		// koş();
	}
	case 2: { // x değeri 2 ise yürü.
		// yürü();
	}
	case 0..4: { // x değeri 0-4 (ikisi de dahil) arasındaysa uyu.
		// uyu();
	}
	case 10: { // x değeri 10 ise yat.
		// yat();
	} 
	default: kalk(); // Üstteki tüm durumlar yanlışsa kalk.
}
Burada dikkat etmemiz gereken default etiketidir. Normal şartlarda default etiketi, switch ifadesinin durumu
ne olursa olsun okunmaktadır fakat pawn dilinde her bir case'in sonunda gizli bir break; komutu bulundurur.
Bu komut sistem tarafından okunduğunda içinde bulunduğu switch ifadesini veya herhangi bir döngüyü sonlandırır.
Dolayısıyla case'lerle belirtilen koşulların sağlanması halinde default etiketinin kod bloğu okunmamaktadır.

Bonus Örnek :

Kod: Tümünü seç

switch(get_user_team(id)) {
	case 1: { // Takımı te ise
		// ak47()
	}
	case 2: { // Takımı ct ise
		// m4a1(); 
	}
}

Link:
Linklerini gizle
Linki Kopyala
Kullanıcı avatarı

omertas14544
Mesajlar: 1602
Kayıt: Prş Oca 26, 2017 3:23 pm
Server Ip/DNS: 213.238.173.35
Clan İsmi: MoonGaming
İletişim:

Pawn Dili İfade ve Döngüler - Bölüm : 1

Mesaj gönderen omertas14544 »

Teşekkürler abi.

Link:
Linklerini gizle
Linki Kopyala
Kullanıcı avatarı

Konu Sahibi
amad
Mesajlar: 1809
Kayıt: Cmt Nis 30, 2016 2:46 pm
Konum: Batman
Clan İsmi: Ke$`h | Gaming
İletişim:

Pawn Dili İfade ve Döngüler - Bölüm : 1

Mesaj gönderen amad »

omertas14544 yazdı: Çrş Haz 12, 2019 12:25 pm Teşekkürler abi.
Rica ederim.

Link:
Linklerini gizle
Linki Kopyala
Kullanıcı avatarı

By.King ►EmrullaH◄
Yasaklı Üye
Yasaklı Üye
Mesajlar: 4297
Kayıt: Cmt Şub 24, 2018 6:05 pm
Konum: İstanbul
İletişim:

Pawn Dili İfade ve Döngüler - Bölüm : 1

Mesaj gönderen By.King ►EmrullaH◄ »

Teşekkür Ederim.Buna ek olarak Bool bir değişkeni menüde açık, kapalı diye gösterme gibi olayları da anlatabilirsin ya da bool değişkenini if koşuluyla yazma vs.

Link:
Linklerini gizle
Linki Kopyala
Kullanıcı avatarı

Konu Sahibi
amad
Mesajlar: 1809
Kayıt: Cmt Nis 30, 2016 2:46 pm
Konum: Batman
Clan İsmi: Ke$`h | Gaming
İletişim:

Pawn Dili İfade ve Döngüler - Bölüm : 1

Mesaj gönderen amad »

By.King ►EmrullaH◄ yazdı: Çrş Haz 12, 2019 4:03 pm Teşekkür Ederim.Buna ek olarak Bool bir değişkeni menüde açık, kapalı diye gösterme gibi olayları da anlatabilirsin ya da bool değişkenini if koşuluyla yazma vs.
boolean, new, float vs. gibi veri tiplerini ayrı bir başlık altında toplamak daha düzenli olur.

Link:
Linklerini gizle
Linki Kopyala
Kullanıcı avatarı

By.King ►EmrullaH◄
Yasaklı Üye
Yasaklı Üye
Mesajlar: 4297
Kayıt: Cmt Şub 24, 2018 6:05 pm
Konum: İstanbul
İletişim:

Pawn Dili İfade ve Döngüler - Bölüm : 1

Mesaj gönderen By.King ►EmrullaH◄ »

Ben sadece önerdim çünkü bool türü en çok zorlanan türler arasında.

Link:
Linklerini gizle
Linki Kopyala
Kullanıcı avatarı

burakxd383
Mesajlar: 922
Kayıt: Pzt Şub 05, 2018 2:10 pm
Konum: Bursa
Server Ip/DNS: -
Clan İsmi: -
İletişim:

Pawn Dili İfade ve Döngüler - Bölüm : 1

Mesaj gönderen burakxd383 »

döngüler belirli şartlarda istenilen şeyi belirli olarak tekrar ettirme değilmi sizin yaptığınız karar mekanizması...

Link:
Linklerini gizle
Linki Kopyala
Kullanıcı avatarı

Yek'-ta
Mesajlar: 9624
Kayıt: Cmt Eyl 12, 2015 12:40 pm
İletişim:

Pawn Dili İfade ve Döngüler - Bölüm : 1

Mesaj gönderen Yek'-ta »

By.King ►EmrullaH◄ yazdı: Çrş Haz 12, 2019 4:12 pm Ben sadece önerdim çünkü bool türü en çok zorlanan türler arasında.
Bool olayı true/false, diğer adı ile 1/0, bunda zorlanacak bir şey yok.
if(degiskenadi) ile if(degiskenadi == 1) aynı olay. Negatif tarafından sorgulamak ister isen if(!degiskenadi) ile if(degiskenadi == 0).
Eğer bir olay esnasında hızlı sorgulayıp işlem yaptırmak ister isen örnek client_print_color(index, color, "Şuanda değişken %s durumunda.", degiskenadi ? "Açık" : "Kapalı")
Degiskenadi isimli bool değişkeninin durumuna göre yazı yazdırdım. Eğer ki değişkeni tam tersine almak ister iseniz degiskenadi = !degiskenadi olarak yazacaksınız.

Link:
Linklerini gizle
Linki Kopyala
Kullanıcı avatarı

By.King ►EmrullaH◄
Yasaklı Üye
Yasaklı Üye
Mesajlar: 4297
Kayıt: Cmt Şub 24, 2018 6:05 pm
Konum: İstanbul
İletişim:

Pawn Dili İfade ve Döngüler - Bölüm : 1

Mesaj gönderen By.King ►EmrullaH◄ »

@Yek'-ta Teşekkür Ederim.

Link:
Linklerini gizle
Linki Kopyala
Kullanıcı avatarı

Taha Demirbaş
Mesajlar: 10424
Kayıt: Cum Tem 08, 2016 10:05 pm
Konum: Türkiye
İletişim:

Pawn Dili İfade ve Döngüler - Bölüm : 1

Mesaj gönderen Taha Demirbaş »

Başlıkta döngülerden söz edilmiş. Fakat içeriği incelediğimizde for ve while den söz edilmemiş. Bahsedilirse tam bir konu olacak görüşündeyim.

Link:
Linklerini gizle
Linki Kopyala
Cevapla