Julia: Kontrol Akışları – Bölüm 4

Herkese selamlar ve sağlıklı günler. 🙂

Julia programlama dili serimize hız kesmeden devam ediyoruz. Julia’ya başlangıç yaptığımız geçen bölümde Julia’da değişken yapılarını, operatörler ve kullanımlarını, veri türlerini tanıdık. Bu bölümde de Julia programlama dilinde kontrol akış mekanizmalarının kullanımlarını ve işlevlerini keşfedeceğiz.

Dilerseniz yazımıza geçelim! 🙂

Bölümler

Bölüm İçeriği

Aşağıda Julia dersleri Bölüm 4 kapsamındaki başlıklar listelenmiştir.

  1. Kontrol Akışları Nedir?
  2. Kontrol Akış Yapıları

1. Kontrol Akışları Nedir?

Bilgisayar programlamada, kontrol akışı veya kontrol akışları, call fonksiyonu çağrılarını, talimatları ve ifadeleri bir program çalışırken değerlendirir ve yürütür. Programlama ile çok az dahi ilgilenmiş birinin kontrol akışlarına dair bir bilgisi muhakkak vardır.

Her programlama dilinde olduğu gibi Julia’da bizlere programlama sürecimizde mantıksal ve koşullu işlemlerin yönetimi/kontrolü için belirli yapılar ve anahtar kelimeler sunmaktadır.

Julia aşağıdaki çeşitli kontrol akış yapılarını bizlere sunmaktadır:

  • Bileşik İfadeler (Compound Expressions) : begin ve ;.
  • Koşullu Değerlendirme (Conditional Evaluation) : ifelseifelse ve ?: (ternary operatorü).
  • Kısa-Devre Değerlendirme (Short-Circuit Evaluation) : &&|| ve zincirleme karşılaştırmalar (chained comparisons).
  • Tekrarlı Değerlendirmeler (Repeated Evaluation) : Döngüler: while ve for.
  • Hata Yakalama (Exception Handling): trycatcherror ve throw.
  • Görevler (Tasks) : yieldto.

İlk beş kontrol akış mekanizması yüksek seviye programlama dillerinde standarttır. Ancak “Görevler”kontrol akışı yapısı çok standart değildir. Yerel olarak kontrol akışı sağlayarak geçici olarak askıya alınmış hesaplamalar arasında geçiş yapmayı mümkün kılmaktadır.

Bu oldukça güçlü bir yapıdır: Julia’da görevler kullanılarak hem istisna yönetimi hem de ortak çoklu görevler uygulanır. Günlük programlama, görevlerin doğrudan kullanımını gerektirmez, ancak bazı sorunlar görevler kullanılarak çok daha kolay çözülebilir.

Daha farklı yapılar oldukları için hata yakalama mekanizması ve görevler mekanizmasını serimizin 8. bölümünde detaylı olarak işleyeceğiz. Bu bölüm itibariyle ilk 4 kontrol akış yapısına odaklanıp, kullanımlarını göstereceğiz.

2. Kontrol Akış Yapıları

Bileşik İfadeler

Bu ifadeler ile son ifadenin değerini değer olarak döndürerek, birkaç alt ifadeyi sırayla değerlendirebilen tek bir ifade oluşturabilmek mümkündür.

Bunu gerçekleştiren iki Julia yapısı vardır:

  • begin blokları
  • ; kullanımı

begin ve ; kullanımı

begin ve end bir kod blogunu belirten anahtar kelimelerdir.

Zincirleme ifade yazmak istediğimiz zaman begin ve end blokları içerisinde ; kullanabiliriz.

begin ve end kod blogu oluşturma ve örnek kullanım

Bunlar oldukça küçük ve basit ifadeler olduğundan, kolayca tek bir satıra yerleştirilebilirler. Bu durumda ise ; kullanılabilir.

Şeklinde zincirleme bir yapı oluşturularak işlemler tek satırda gerçekleştirilebilir.

Koşullu Değerlendirmeler

Koşullu değerlendirme yapıları, kod bölümlerinin bir boole ifadesinin değerine bağlı olarak değerlendirilmesine veya değerlendirilmesine izin verir. Çoğu programlama dilinden yakından tanıdığımız bu söz dizim kuralları çeşitli kontroller ve mantıksal işlemleri gerçekleştirmemize olanak tanırlar.

if, elseif, else koşullu değerlendirme yapılarına tabidirler.

if Kullanımı

if ifadesi en basit karar verme ifadesidir. Belirli bir ifadenin veya ifade blogunun yürütülüp yürütülmeyeceğine, yani belirli bir koşulun doğru olup olmadığına karar vermek için kullanılır.

Söz dizim formatı:

Örnek:

if koşulunun doğru olmadığı aşağıdaki gibi durumlarda program örnekteki gibi davranır ve if blogunun içi işlenmez:

if-else Kullanımı

if ifadesi tek başına bir koşul olarak doğruysa bir ifade bloğu yürütebileceğimizi ve koşul yanlışsa bunu yapamayacağımızı söylemektedir. Ama ya durum yanlışsa ve yanlış olan durumda başka bir işlem gerçekleştirmek istiyorsak? İşte burada karşımıza else ifadesi çıkmaktadır. Koşul yanlış olduğunda kod blogunu yürütmek için kullanılır. İçerisine programcı tarafından tercih edilen durumlar yazılabilir.

Söz dizim formatı:

Örnek:

Yukarıdaki kodda, if-ifadesinde verilen koşul yanlıştır. Böylece else deyiminde yazılan kod blogu yürütülür. Daha sonra, else blogunun yürütülmesi bittiğinde, derleyici if-else ifadesinin dışında yazılı ifadeyi yürütür.

İç İçe if (Nested-if) Kullanımı

Nested-if olarak geçmekte olan bu ifade türü, başka bir if ifadesinin içine yazılmış bir if ifadesi anlamına gelir. Julia nested-if ifadelerine izin vermektedir. Böylece, bir if ifadesini başka bir if ifadesinin içine yerleştirebiliriz ve ihtiyaca göre birden fazla if-ifadesi kullanabiliriz.

Söz dizim formatı:

Örnek:

if-elseif-else Kullanımı

Bu kullanımda, birden fazla seçenek arasından seçim yapılabilir. if ifadeleri yukarıdan aşağıya doğru yürütülür. if değerini kontrol eden koşullardan biri doğru olduğunda, bununla ilişkili ifade yürütülür ve koşulların geri kalanı atlanır. Koşullardan hiçbiri doğru değilse, başka ifade çalıştırılır.

Söz dizim formatı:

Bir önceki bölümde tanıdığımız operatörlerin yardımıyla if-elseif ve else anahtar kelimelerinin örnek bir kullanımını gösterelim:

Yukarıdaki kod blogunda koşulu sağlayan ifadeler için, tanımlı olan komutlar işlenir.

if yapısı tek başına, else deyimi ile birlikte, elseif deyimi ile birlikte veya her ikisi ile birlikte kullanılabilir. elseif ve else blokları isteğe bağlıdır ve istenildiği kadar çok sayıda blok oluşturularak kullanılabilirler. Eğer if satırında yer alan ifadenin sonucu doğru ise, program if satırındaki işlem satırının gereğini yerine getirir, else satırına hiçbir işlem yapmaz. Eğer if satırında yer alan ifade yanlış ise, program if satırını dikkate almaz, else satırındaki işlem satırının gereğini yerine getirir. Program iki satırdan sadece bir tanesini dikkate almak zorundadır. Program, en başta yer alan if satırı ile if-elseif kalıbını değerlendirmeye başlar. İlk doğru ifadenin bulunduğu if veya else if satırı ile karşılaştığında ilgili işlem satırını çalıştırır. Kalıbın geri kalan tüm satırlarını değerlendirmeye almadan geçer. Eğer if ve elseif satırlarında yer alan ifadelerden hiç biri doğru bir sonuç vermezse, else satırında yer alan işlem satırını çalıştırır. else satırı da mevcut değilse, program if-elseif kalıbının hiç bir satırını çalıştırmadan bir sonraki satırdan çalışmasına devam eder. if-elseif kalıbında sadece tek bir satır işlem görür.

?: Operatörü

Ternary operatörü, if-elseif-else söz dizimi ile yakından ilişkilidir, ancak daha uzun kod bloklarının koşullu yürütülmesinin aksine, tek ifade içinde değerler arasında koşullu bir seçim gerektiğinde kullanılır.

Örnek Kullanımlar:

Kısa-Devre Değerlendirmeler

Kısa devre değerlendirmeleri, koşullu değerlendirmeye oldukça benzemektedir.

  • a && b, ifadesinde alt ifade a doğru olarak değerlendirilirse değerlendirilir.
  • a || b, alt ifade b yanlış olarak değerlendirilirse değerlendirilir.

a && b’nin yanlış olması durumu, b’nin değerinden ve benzer şekilde bir || değerinden bağımsız olarak yanlış olduğunu söylemektedir. b değerinden bağımsız olarak a doğruysa b doğru olmalıdır. Aslında yine, bu değerlendirme yapısında, matematiksel operatörler değişkenler üzerinde işlem yapmamıza olanak tanımaktadır.

Tekrarlı Değerlendirmeler: Döngüler

İfadelerin tekrarlı değerlendirilmesi yani döngüler oluşturulması her programlama dilinde de olduğu gibi Julia’da da while döngüsü ve for döngüsü kullanılır.

for Döngüsü

for döngüsü, bir değer kümesi üzerinden yineleme yapmak ve döngü gövdesinde verilen bir dizi işlemi gerçekleştirmek için kullanılır.

Örnek Kullanım:

Burada, “for” döngü için belirten anahtar kelimedir. Başka bir kullanım şekli olarak yineleme yapılacak bir aralık tanımlamak için “in” kullanılır. Ve “end” anahtar kelimesi ile döngü sonu tanımlanır.

Söz dizim formatı:

iteratör, yerine sunulan değerler her bir yineleme için aralık veya koleksiyonun öğesidir. for döngüsünün içinden itetör öğesine erişilebilir.

Örnek Kullanım:

for döngüleri de aynı koşullu değerlendirme yapılarında olduğu gibi iç içe kullanılabilirler.

Örnek Kullanım:

Aşağıdaki örnekte, bazı başlangıç değerleriyle 2 boyutlu bir dizi için iç içe for döngüsü (nested-for loop) yapısı kullanılmıştır.

while Döngüsü

while döngüsü, belirli bir koşul sağlanana kadar bir deyim blogunu tekrar tekrar yürütmek için kullanılır. Koşul yanlış olan şarta geldiğinde, programdaki döngüden hemen sonraki kod satırını yürütmeye başlar. while döngüsü ilk kez yürütüldüğünde koşul yanlışsa, döngünün gövdesi hiçbir zaman yürütülmez.

Söz dizim formatı:

Örnek Kullanım:

1’den 5’e kadar sayıları yazdırmak için bir while döngüsü kullanıyoruz.

Örnek Kullanım:

while döngüsü ile faktöriyel bulma.

Örnek Kullanım:

Fibonacci dizisinin uzunluğunu while döngüsü ile bulma.

Bir sonraki bölümde görüşmek dileğiyle. 🙂

One thought on

Julia: Kontrol Akışları – Bölüm 4

Bir cevap yazın