1. sayfa (Toplam 2 sayfa)

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

Gönderilme zamanı: Çrş Haz 12, 2019 12:09 pm
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(); 
	}
}

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

Gönderilme zamanı: Çrş Haz 12, 2019 12:25 pm
gönderen omertas14544
Teşekkürler abi.

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

Gönderilme zamanı: Çrş Haz 12, 2019 3:30 pm
gönderen amad
omertas14544 yazdı: Çrş Haz 12, 2019 12:25 pm Teşekkürler abi.
Rica ederim.

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

Gönderilme zamanı: Çrş Haz 12, 2019 4:03 pm
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.

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

Gönderilme zamanı: Çrş Haz 12, 2019 4:06 pm
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.

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

Gönderilme zamanı: Çrş Haz 12, 2019 4:12 pm
gönderen By.King ►EmrullaH◄
Ben sadece önerdim çünkü bool türü en çok zorlanan türler arasında.

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

Gönderilme zamanı: Çrş Haz 12, 2019 5:03 pm
gönderen burakxd383
döngüler belirli şartlarda istenilen şeyi belirli olarak tekrar ettirme değilmi sizin yaptığınız karar mekanizması...

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

Gönderilme zamanı: Çrş Haz 12, 2019 5:31 pm
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.

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

Gönderilme zamanı: Çrş Haz 12, 2019 5:33 pm
gönderen By.King ►EmrullaH◄
@Yek'-ta Teşekkür Ederim.

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

Gönderilme zamanı: Çrş Haz 12, 2019 6:59 pm
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.