-
iOS Eğitimlerine Başlarken...
-
Objective-C Dilinde Kütüphaneler
-
Objective-C'de Sınıf Arayüzü (Class Interface) Nasıl Tanımlanır?
-
Objective-C Dilinde Veri Tipleri, İşlem Operatörleri ve Çeşitli İfadeler
-
Objective-C Dilinde Veri Tipleri, İşlem Operatörleri ve Çeşitli İfadeler Giriş
-
Sabitlerden Oluşan İfadeler
-
int Türü İfadeler
-
float Türündeki İfadeler
-
Gösterge İfadeleri
-
Gösterge İfadeleri ve Değerleri
-
Operatörlerin Öncelikleri ve Birleşme Sıraları
-
İkili Aritmetiksel Operatörler
-
Aritmetiksel Atama Operatörleri
-
İlişkisel Operatörler
-
Mantıksal Operatörler
-
Bit Düzeyinde İşlem Gören Operatörler
-
Öteleme Operatörleri
-
Bit Düzeyinde Mantıksal Operatörler
-
Bit Düzeyinde İşlem İçin Bir Örnek: Sınav Değerlendirme Programı
-
Bit Düzeyinde Atama Operatörleri
-
Cast Operatörü
-
sizeof Operatörü ve Bir Örnek Program
-
Tekli Operatörler
-
Koşul Operatörü
-
Bellek Operatörleri
-
Objective-C Dilinde Veri Tipleri, İşlem Operatörleri ve Çeşitli İfadeler Giriş
-
Kontrol Yapıları
-
Döngü (Loop) Oluşturma
-
Miras Alma (Inheritance), Çok Biçimlilik
-
Ön İşlemci Komutları ve Makrolar
-
Ön İşlemci Komutları ve Makrolar Giriş
-
Basit Makro Tanımları
-
Objective-C Ön İşlemcisi
-
Makrolarda Argümanlar
-
Önceden Tanımlanmış Değerlere Referans Verme
-
Gerçek Parametrelerde Bir Dizi İfadenin Kullanılması
-
Makro Tanımlamada # ve ## Operatörleri
-
Makro Tanımın İptal Edilmesi: undef Komutu
-
Dosya İçeriklerini Programa Katma: include Komutu
-
Şarta Bağlı Derleme İşlemi: #if Komutu
-
#ifdef Komutu
-
#ifndef Komutu
-
#error ve #pragma Direktifleri
-
Ön İşlemci Komutları ve Makrolar Giriş
-
Diziler ve Sözlük Nesneleri
-
Diziler ve Sözlük Nesneleri Giriş
-
Bir Dizi Nesnesi Oluşturmak
-
Dizideki Eleman Sayısını Bulmak
-
Bir Dizi Nesnesinin Elemanlarına Erişme
-
Dizi Elemanlarına Hızlı Numaralama (Fast Enumeration) Yöntemi ile Erişmek
-
Dizi Nesnesine Eleman Eklemek
-
Dizi Nesnesinde Araya Eleman Ekleme
-
Dizi Nesnesinin Bazı Elemanlarını Silme
-
Dizi Nesnelerini Sıralama
-
Diziler ve Sözlük Nesneleri Giriş
-
Fonksiyonlar
-
Fonksiyonlar Giriş
-
Objective C Dilinde Bir Fonksiyonun Yapısı
-
Fonksiyonların Tanımlanması
-
Fonksiyonlarla İlişkili Terimler
-
return Deyimi
-
Fonksiyon Çağrıları ile İlgili Örnek C Programları
-
Fonksiyon Çağırma Teknikleri
-
Fonksiyonları Değer ile Çağırma
-
Fonksiyonları Referans ile Çağırma
-
İki Boyutlu Dizinin Argüman Olarak Gönderilmesi
-
C Dilinde Özyineli (Rekürsif) Fonksiyonlar
-
Fonksiyonlar Giriş
-
Dinamik Bağlama, id Veri Tipi
-
Bellek Sınıfları
-
Dosya İşlemleri
-
Nesne Yönelimli Programlama
-
Algoritmaya Giriş
Bir programda çok sayıda koşul kontrolü ve bunların sonucuna göre gerçekleştirilmesi gereken işlemler varsa, if-else yapıları ile akışın izlenmesi zorlaşabilir. Böyle durumlar genellikle switch deyiminin kullanılmasının gerekli olacağı durumlardır. switch deyimi, tek bir ifadenin değerine göre sınırsız sayıda çalıştırma yolu belirlemeyi sağlayan bir komuttur.
switch sözcüğünden hemen sonra gelen ifade parantezler içinde ve bir tamsayı ifade olmalıdır. Yani char, short, int , long, byte, sbyte, ushort, uint, ulong olabilir fakat float, double veya long double olamaz. (C için; Kernighan&Ritchie standardı, ifadenin int tipinde olmasını gerektirir.)
case anahtar sözcüklerini izleyen ifadeler tamsayı sabit türünde ifadeler olmalıdır, yani değişken içermemelidir.
switch deyiminin çalışma prensibi basittir. switch ifadesi hesaplanır; sonuç hangi case’i izleyen sabitle çakışıyorsa, programın kontrolü o case’i izleyen kısma geçer. Bu case’den sonraki deyimler de kontrol edilmeden çalıştırılır.
case sabitlerinden hiçbiri ifade ile uyuşmuyorsa, programın akışı default‘u izleyen kısma geçer (tabii bu kısım mevcutsa). default‘un en sonda olması şart değildir. Fakat en sona koymak iyi bir programlama stilidir.
İki case sabiti aynı değeri alamaz.
C DİLİ: Switch/case yapısında, programın kontrolünün ifadenin değerine göre case seçeneklerinden sadece birini çalıştırıp bundan sonra switch/case yapısını terketmesini istiyorsak bu durumda her case seçeneğinden sonra break komutu yerleştirmeliyiz.
C# DİLİ: Her case’den sonra break kullanmamız gerekir.
ÖRNEK PROGRAMI:
#import <Foundation/Foundation.h>
int main(int argc, char* argv[])
{
NSAutoreleasePool *pool=[[NSAutoreleasePool alloc] init];
char sec;
NSLog(@"\nSECIMINIZ,A,B VEYA C'DEN BIRINI GIRINIZ..");
scanf("%c",&sec);
switch(sec)
{
case 'A':
NSLog(@"A SINIFI DERGILERIN LISTESI");
break;
case 'B':
NSLog(@"B SINIFI DERGILERIN LISTESI");
break;
case 'C':
NSLog(@"C SINIFI DERGILERIN LISTESI");
break;
default:
NSLog(@"HATALI SECIM,A,B VEYA C GIRILMELI");
break;
}
[pool drain];
return 0;
}
PROGRAMININ ÇIKTILARI:
switch/case YAPISI İLE İLİŞKİLİ ÖRNEK UYGULAMA:
Bir turizm şirketi farklı tur çeşitlerinden oluşan bir liste sunuyor. Kullanıcı bu listeden ilgilendiği bir turu seçtiğinde, o turla ilişkili ayrıntılı bilgiye ulaşıyor. Burada aşağıdaki basit algoritmayı uygulayacağız:
|
Bu algoritmaya uygun yazılan Objective C programı aşağıda yer alıyor:
Aşağıdaki Objective C programını oluşturalım:
#import <Foundation/Foundation.h>
int main(int argc, char* argv[])
{
NSAutoreleasePool *pool=[[NSAutoreleasePool alloc] init];
int sec;
NSLog(@"\nHEIMAT TURIZM SIRKETI SUNAR");
NSLog(@"\n1.ORTA AVRUPA TURU");
NSLog(@"\n2.AMERIKA TURU");
NSLog(@"\n3.UZAK DOGU TURU");
NSLog(@"\nSECIMINIZ...");
scanf("%i", &sec);
switch(sec)
{
case 1:
NSLog(@"UCAK ILE VIYANA(3),BUDAPESTE(2),PRAG(2)");
NSLog(@"4 YILDIZLI OTELLERDE OK-1700$");
break;
case 2:
NSLog(@"OZEL UCAK ILE NEW YORK(4),BOSTON(2),LOS ANGELES(4)");
NSLog(@"5 YILDIZLI OTELLERDE OK-3700$");
break;
case 3:
NSLog(@"OZEL UCAK ILE BANG KONG(3),HONG KONG(3)");
NSLog(@"\nTOKYO(3),PEKIN(3)");
NSLog(@"5 YILDIZLI OTELLERDE OK-4000$");
break;
default:
NSLog(@"HATALI SECIM,1,2 VEYA 3 GIRILMELI");
break;
}
[pool drain];
return 0;
}
Uygulamayı çalıştıralım. Farklı menü seçimlerini deneyerek aşağıdaki çıktıları elde ederiz: