St.AnGeR
Document Visor..
Karar Yapıları Yapıları
IF
Program içinde karar vermek için kullanılan en basit yapıdır. If..Else deyimi bir Boolean ifadeyi değerlendirerek program denetimi belirtilen deyim gruplarına geçirir. Bir örnekle açıklamak gerekirse;
Şimdi kafanızda canlandırın. Tatil yapmak istiyorsunuz. Broşürlere baktınız. Elinizde 4 seçenek var. Bodrum, Fethiye, Ayvalık, Uludağ ve cebinizde 40 lira var. Fiyatlara baktınız Ayvalık ve Uludağ seçeneklerinin fiyatları 90 lira. Bodrum 30, Fethiye 35. Kafadan bi kere 90 lıkları elediniz. Eee bütün parayı oraya verirsek ne yicez ne içicez deyip acaba tüm masraflar dahilmi onada baktınız. Fethiyede herşey dahil. Güzel Bodruma göre 5 lira fazla olmasına rağmen daha kârlı. Evet Kararınızı verdiniz Fethiye ye gidiceksiniz.
İşte karar yapıları böyle kurulur.
Tabi ki burada ki yapı çok kompleks bir yapıdır. Yüzeyseldir. Programlamada her türlü olasılık bu yapılar içinde belirtilmek zorundadır. Meselâ tatilden dönünce işe gidicek parayı nerden bulacağınız gibi. Burası çok önemli bir noktadır gerçek hayatta bu hayati bir mesele olmamasına rağmen programlamada bu yapı çöker.
Operatörler
C# içinde operatörleri aşağıdaki gibi kullanacağız.
C#’taki if deyimi C ve C++ a benzer. Eğer parantez içerisindeki koşul doğru ise ilgili blokdaki program kodu execute edilir.
Yapısı:
Örnek 2:
Else
C# aynı zamanda daha complex bir yapı sağlamak için else de kullanır.
Aşağıdaki örnek kod ile true yada false durumlarında programın akış değişimi bir şekli de gösterilmiştir.
Bu örnekte ise if’in farklı bir kullanımını görülebilir.
//Aşağıdaki kod yukarıdaki ile aynı işlemi yapar.
switch…case Deyimi
Switch deyimi de if deyimi gibi programın koşullara gore yönlenmesini sağlar. Özellikle bir değişkenin değerine gore değişik işlemler yapılacaksa o zaman Switch..Case yapısı uygun olur. Örneğin ücret değerinin belli kademelerde değişik oranlarda vergilenmesi gibi.
Yapısı:
Default etiketi, değerin herhangi bir case koşuluna uymadığı durumlarda gidilecek deyimi belirtir.
Örnek:
Yukarıdaki kod incelendiğinde açık olarak görüldüğü gibi i değişkenin alabileceği her değer göz önünde bulundurularak koşula göre gereken işlem yapılmıştır. default tanımlamadan ‘yukarıda belirtilen değerlerden herhangi birisine sahip değilse’ anlamı çıkarılmalıdır.
switch kullanırken dikkat edilmesi gereken case ile değer bildirildikten sonra yazılan kodun en sonuna yani diğer koşula geçmeden once break kullanarak compiler’a koşul tanımının bittiğini söylemektir. Aksi takdirde “Control cannot fall through from one case label (‘labelname:’) to another” şeklinde bir compiler hatası ile karşılaşırız.
Döngüler
Loops
Programlamanın diğer önemli elemanlarından biri de döngü kullanımıdır. C# ile döngü kullanımı da diğer programlama dillerinde olduğu gibi mantık olarak aynıdır.
while Döngüsü
Belirtilen koşul gerçekleşene kadar bir döngüye ihtiyacımız olduğunda kullanacağımız döngülerdir. Tek dikkat etmemiz gereken tanımlanan koşul gerçekleşmişse döngünün execute edilmesidir. Bunun nedeni koşulun döngü başlangıcında bildirilmesidir.
do…while Döngüsü
While döngüsünden tek fark olarak karşılaştırmanın döngünün sonunda yapılmasıdır. Bu durumda program akışı gereği döngü durum ne olursa olsun aşağıda belirtilen koşul sağlanana kadar yada break keyword’ü ile döngünün kesildiği söylenene kadar execute edilir.
Uygulama:
1 ile 10 arası değer girilene kadar ekrandan değer okuyacak program parçasını yazın.
Çözüm:
For Deyimi
Bir grup deyimi belli sayıda çalıştırarak (tekrar ederek) bir döngü oluşturur. Örneğin birden ona kadar (on kere) şu işlemi yap şeklinde. Özellikle bir döngü denetim değişkenin kullanıldığı (sayaç) bu döngü yapısı iç içe döngülerin de yapılmasını sağlar.
Yapısı:
for (ilk değer ; koşul ; artırım )
iç deyimler
Örnek:
For...Next döngüsünde döngü değişkeni, döngünün kullanımında önemli bir rol oynar. Kullanımlardan genellikle döngü değişkeni ile bir dizinin elemanı ya da kayıt sayısı gibi değerler temsil edilir:
Jump Deyimleri
Döngüler ve karar deyimleri görevlerini yerine getirirken, bazen çıkış yapmaya gereksinim duyulur. C#'da goto, break ve continue deyimleri atlama deyimleri olarak bilinir.
Goto deyimi program içinde belirtilen bir etikete atlamayı sağlar. Ancak yapısal programlama açısında kullanımı önerilmez.
Örnek:
IF
Program içinde karar vermek için kullanılan en basit yapıdır. If..Else deyimi bir Boolean ifadeyi değerlendirerek program denetimi belirtilen deyim gruplarına geçirir. Bir örnekle açıklamak gerekirse;
Şimdi kafanızda canlandırın. Tatil yapmak istiyorsunuz. Broşürlere baktınız. Elinizde 4 seçenek var. Bodrum, Fethiye, Ayvalık, Uludağ ve cebinizde 40 lira var. Fiyatlara baktınız Ayvalık ve Uludağ seçeneklerinin fiyatları 90 lira. Bodrum 30, Fethiye 35. Kafadan bi kere 90 lıkları elediniz. Eee bütün parayı oraya verirsek ne yicez ne içicez deyip acaba tüm masraflar dahilmi onada baktınız. Fethiyede herşey dahil. Güzel Bodruma göre 5 lira fazla olmasına rağmen daha kârlı. Evet Kararınızı verdiniz Fethiye ye gidiceksiniz.
İşte karar yapıları böyle kurulur.
Tabi ki burada ki yapı çok kompleks bir yapıdır. Yüzeyseldir. Programlamada her türlü olasılık bu yapılar içinde belirtilmek zorundadır. Meselâ tatilden dönünce işe gidicek parayı nerden bulacağınız gibi. Burası çok önemli bir noktadır gerçek hayatta bu hayati bir mesele olmamasına rağmen programlamada bu yapı çöker.
Operatörler
C# içinde operatörleri aşağıdaki gibi kullanacağız.
Kod:
< Küçüktür
<= Küçük eşittir
> Büyüktür
>= Büyük eşittir
!= Eşit değildir
= = Eşittir
C#’taki if deyimi C ve C++ a benzer. Eğer parantez içerisindeki koşul doğru ise ilgili blokdaki program kodu execute edilir.
Yapısı:
Kod:
if (Islem)
{
//Eğer karşılaştırma sonucu true ise execute edilir
}
Örnek 2:
Kod:
if (saat = = 24) {
saat = 0;
gun++
}
Else
C# aynı zamanda daha complex bir yapı sağlamak için else de kullanır.
Kod:
if (Islem)
{
//Eğer karşılaştırma sonucu true ise execute edilir
}
else if (Islem2)
{
//Islem karşılaştırmasının sonucu false ve
// Islem2 karşılaştırmasının sonucu true ise
//execute edilir
}
else
{
// Islem karşılaştırmasının sonucu false ve
// Islem2 karşılaştırmasının sonucu false ise
//execute edilir
}
Aşağıdaki örnek kod ile true yada false durumlarında programın akış değişimi bir şekli de gösterilmiştir.
Kod:
using System;
public class IfExample
{
public static int Main()
{
bool Islem =false;
if (Islem)
{
Console.WriteLine("Islem 'in değeri true");
}
else
{
Console.WriteLine("Islem ‘in değeri false");
}
Console.ReadLine();
return 0;
}
}
Bu örnekte ise if’in farklı bir kullanımını görülebilir.
Kod:
if (a)
{
int j=FunctionA();
}
else
{
int j=FunctionB();
}
//Aşağıdaki kod yukarıdaki ile aynı işlemi yapar.
Kod:
int j=ExpressionA?FunctionA():FunctionB();
switch…case Deyimi
Switch deyimi de if deyimi gibi programın koşullara gore yönlenmesini sağlar. Özellikle bir değişkenin değerine gore değişik işlemler yapılacaksa o zaman Switch..Case yapısı uygun olur. Örneğin ücret değerinin belli kademelerde değişik oranlarda vergilenmesi gibi.
Yapısı:
Kod:
Switch (değişken) {
Case koşul1:
İşlem1
Case koşul2:
İşlem2
Default:
İşlem3
}
Default etiketi, değerin herhangi bir case koşuluna uymadığı durumlarda gidilecek deyimi belirtir.
Örnek:
Kod:
using System;
public class switchExample
{
public static int Main()
{
for (int i=1;i<10;i++)
{
switch (i)
{
case 1:
Console.WriteLine("Bir");
break;
case 2:
Console.WriteLine("İki");
break;
case 3:
Console.WriteLine("Üç");
break;
case 4:
Console.WriteLine("Dört");
break;
case 5:
Console.WriteLine("Beş");
break;
default:
Console.WriteLine("Sayı 5'ten büyük");
break;
}
}
Console.ReadLine();
return 0;
}
}
Yukarıdaki kod incelendiğinde açık olarak görüldüğü gibi i değişkenin alabileceği her değer göz önünde bulundurularak koşula göre gereken işlem yapılmıştır. default tanımlamadan ‘yukarıda belirtilen değerlerden herhangi birisine sahip değilse’ anlamı çıkarılmalıdır.
switch kullanırken dikkat edilmesi gereken case ile değer bildirildikten sonra yazılan kodun en sonuna yani diğer koşula geçmeden once break kullanarak compiler’a koşul tanımının bittiğini söylemektir. Aksi takdirde “Control cannot fall through from one case label (‘labelname:’) to another” şeklinde bir compiler hatası ile karşılaşırız.
Döngüler
Loops
Programlamanın diğer önemli elemanlarından biri de döngü kullanımıdır. C# ile döngü kullanımı da diğer programlama dillerinde olduğu gibi mantık olarak aynıdır.
while Döngüsü
Belirtilen koşul gerçekleşene kadar bir döngüye ihtiyacımız olduğunda kullanacağımız döngülerdir. Tek dikkat etmemiz gereken tanımlanan koşul gerçekleşmişse döngünün execute edilmesidir. Bunun nedeni koşulun döngü başlangıcında bildirilmesidir.
Kod:
using System;
public class whileExample
{
public static int Main()
{
int i=0;
//i değişkenin değeri 7'den küçükse
//döngüye başla
while (i<7)
{
i++;
Console.WriteLine(i);
}
//i değişkenin değeri 8'den büyükse
//döngüye başla değer 8'den büyük olmadığı
//için aşağıdaki döngünün burada hiç bir işlevi yoktur.
while (i>8)
{
i++;
Console.WriteLine(i);
}
Console.ReadLine();
return 0;
}
}
do…while Döngüsü
While döngüsünden tek fark olarak karşılaştırmanın döngünün sonunda yapılmasıdır. Bu durumda program akışı gereği döngü durum ne olursa olsun aşağıda belirtilen koşul sağlanana kadar yada break keyword’ü ile döngünün kesildiği söylenene kadar execute edilir.
Kod:
using System;
public class whileExample
{
public static int Main()
{
int i=0;
do
{
i++;
Console.WriteLine(i);
if (i==5)
{
break;
}
}while (i<8);
Console.ReadLine();
return 0;
}
}
Uygulama:
1 ile 10 arası değer girilene kadar ekrandan değer okuyacak program parçasını yazın.
Çözüm:
Kod:
do {
Console.Write ("değeri girin");
deger = int.Parse (console.ReadLine());
} while (deger < 0 ½½deger >= 10);
For Deyimi
Bir grup deyimi belli sayıda çalıştırarak (tekrar ederek) bir döngü oluşturur. Örneğin birden ona kadar (on kere) şu işlemi yap şeklinde. Özellikle bir döngü denetim değişkenin kullanıldığı (sayaç) bu döngü yapısı iç içe döngülerin de yapılmasını sağlar.
Yapısı:
for (ilk değer ; koşul ; artırım )
iç deyimler
Örnek:
Kod:
for (int i = 0; i < 10; i ++) {
Console.WriteLine(i); }
For...Next döngüsünde döngü değişkeni, döngünün kullanımında önemli bir rol oynar. Kullanımlardan genellikle döngü değişkeni ile bir dizinin elemanı ya da kayıt sayısı gibi değerler temsil edilir:
Kod:
for (int i = 0; i < 7; i ++) {
Console.WriteLine(gunler[i]); }
Jump Deyimleri
Döngüler ve karar deyimleri görevlerini yerine getirirken, bazen çıkış yapmaya gereksinim duyulur. C#'da goto, break ve continue deyimleri atlama deyimleri olarak bilinir.
Goto deyimi program içinde belirtilen bir etikete atlamayı sağlar. Ancak yapısal programlama açısında kullanımı önerilmez.
Örnek:
Kod:
..
atla:
..
goto atla;
Break ve continue deyimi
En yakın bloktan çıkışı sağlar. Continue deyimi ise yeni bir döngüye başlar.
int sayac = 1;
while (true) {
Console.WriteLine(sayac);
sayac++;
if (sayac <= 10)
continue;
else
break;
}