C dili için yaziyorum.

if(5) : bu şekilde kullanınca true kısmını çalıştırıyor.

if(0) : yapınca false kısmını çalıştıyor.

Yani o kısma 0 haricinde bir değer girince true olarak kabul ediyor.Ancak;

// Kasti olarak atama operatoru kullanılmıştır.

if(k=5) : bu şekilde bir atama yapınca koşul kısmında yine true kabul ediyor.0 haricinde herhangi bir sayi.

if(k=0) diyince false olarak kabul ediyor.

Sorum şu :

if koşul kısmındaki true veya false değerini nasıl üretiyor.0 haricinde bir değer(sadece değer, atama yapmadan yani if(3) gibi.) yazınca oranın zaten true olacagını anlıyorum.Ama k ya atama yapınca,yaptıgımız değere göre true ve ya false sonucunu nasıl üretiyor?

soruldu: 09 Mar '12, 12:45

ssselim's gravatar image

ssselim
151359
cevap kabul oranı: 0%

değiştirildi: 16 Haz '12, 11:28

rahmanyazgan's gravatar image

rahmanyazgan ♦
4.4k83559


Operatörler geriye değer dönerir.(hangi dillerde böyle değil bilmiyorum ama C ve türevi dillerde böyler, C,C++,PHP,C#,Java vs.) k=5 ifadesinde geriye dönen 5tir. yani atanan değerdir. dolayısıyla a = (k=5) veya a = k = 5 ifadesinde hem k hem de a 5 olur yine burdan da bir değer döner. "Operatör Overload" ile ilgili kısa bir araştırma yaparsanız, operatorlerin de metod/fonksiyon gibi çalıştığını görebilirsiniz, overload işleminde de bu operatorlere farklı gorevler atayabilirsiniz. "k" integer olsun operatorlerden "=" (eşittir) integer için ->ata(deger) işlemi yapsın. "k = 5 " ifadesi k->ata(5) anlamına gelmiş olur. fonksiyonun içine girdiğimizde (tabi bu ata değil operator overload fonksiyonu olacak.)

Integer& Integer::operator=(const Integer &deger) {

  if (this != &deger)
  {
      this = deger;
    }

    return *this;//burada return ettik
  }

Örneğe dönecek olursak;

if(k=5) ile

a = k = 5; 
if(a)

aynı şekilde sonuc verir, yani true

permanent link

cevaplandı: 09 Mar '12, 19:22

Tufan's gravatar image

Tufan
10134
cevap kabul oranı: 50%

Cevabınız
toggle preview

Bu soruyu takip et

E-Posta üzerinden:

Üyelik girişi yaptıktan sonra abonelik işlemlerini yapabilirsiniz

RSS üzerinden:

Cevaplar

Cevaplar ve Yorumlar

Yazı Formatlama

  • *italic* ya da _italic_
  • **bold** ya da __bold__
  • link:[text](http://url.com/ "başlık")
  • resim?![alt text](/path/img.jpg "başlık")
  • liste: 1. Foo 2. Bar
  • temel HTML etiketleri de kullanılabilir

Bu sorunun etiketleri:

×42
×2

Soruldu: 09 Mar '12, 12:45

Görüntüleme: 941 kez

Son güncelleme: 16 Haz '12, 11:28

powered by BitNami OSQA