Expression ve Statement Farkı

Burcu S
1 min readSep 13, 2019

--

Merhabalar, bu aslında kapsamlı bir yazıdan ziyade “Expression ve Statement Farkı”nı anlatacağım az ve öz bir bilgilendirme olacak.

Expression ve Statement kelimelerinin anlamlarından bir şeyler çıkarmak istediğimizde direkt sözlüklere koşup bakınca ikisinin de “ifade” anlamı taşıdığını görmüşüzdür. Peki ikisi de ifade iken anlamlarındaki asıl fark nedir?

Aslında farklı programlama dillerinin dokümanlarına baktığımızda bazı noktalarda ayrıştıklarını görebiliriz. Ancak yazıda genel hatları ile farkı anlatmaya çalışacağım.

Programlamada yazdığımız her bir satır kod “statament”tır diyebiliriz çünkü statementlar, programımızdaki komutları, eylemleri temsil etmektedirler. Örneğin atama işlemleri, yazdırma işlemleri, değişken tanımlama vb…

Program yazarken değer döndüren bazı satırlar yazarız işte bunlar ise “expressionlar”dır.

Statement

  • Dart
var sayi = 5;print(x);
  • Java

Java’da değişken başlatma yani tanımlayıp atama işlemi birlikte yapıldığında statement kabul edilir. Ancak sadece değer ataması yapmak expressiondır.

boolean bayrak = true;String isim;
  • Python
print 5isim = 'medium'

Expression

  • Dart
x++; //Burada önce x değeri döner, daha sonra x 1 artar.sayı == 5 ? 'evet' : 'hayır'; //Burada evet ya da hayır şeklinde bir değer döner
  • Java
sayi * 2 //Burada sayının 2 katı değer döner.isim = "expression";
  • Python
1 + 1calculate(6)//Fonksiyonlar genelde değer döndüren yapılardır ancak Pythonda değer döndürmeyen (Diğer dillerde void tipli) fonksiyonlar da expression olarak kabul edilmektedir.

Kısaca expressionlar değer döndüren kod satırları; statement ise bir şeyler gerçekleştiren kod satırlarıdır.

Her expression aynı zamanda bir eylem gerçekleştirdiğinden birer statementtır da ancak her statement değer döndürmeyeceğinden expression değildir.

Temel fark bu şekilde… Ortak nokta bulmak istersek çelişen ifadelerle karşılaşabiliriz o yüzden anlık olarak çalıştığımız dilin dokümanlarından yararlanmak daha uygun olur :)

--

--

Burcu S
Burcu S

Written by Burcu S

Lead Mobile Engineer | Flutter Developer, Lover & Learner | For contact: linkedin.com/in/burcus/

No responses yet