Programın Akışının Denetimi. Bir arada yürütülmesi istenen deyimleri içeren bir yapıdır. Söz dizimi şöyledir:



Benzer belgeler
Döngüler. 1.1 while döngüsü

Program Akışının Denetimi

Belirli bir iş bir çok kez tekrarlanacaksa, programda bu iş bir kez yazılır ve döngü deyimleriyle istenildiği kadar tekrar tekrar çalıştırılabilir.

BMÜ-111 ALGORİTMA VE PROGRAMLAMA AKIŞ KONTROLÜ YRD. DOÇ. DR. İLHAN AYDIN

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

DÖNGÜLER BMÜ-111 ALGORİTMA VE PROGRAMLAMA-I YRD. DOÇ. DR. İLHAN AYDIN

while(), do-while(), for() M.İLKUÇAR 2010 MAKU-MYO

Bu amaçla, if ve switch gibi karar verme deyimleri, for, while, do..while gibi döngü deyimleri kullanılır.

MAT213 Bilgisayar Programlama I

Ders - 7 while döngüsü

Karşılaştırma İşlemleri ve Koşullu İfadeler

DÖNGÜLER (LOOPS) while(), do-while(), for(), foreach()

Bölüm 08 Program Akışının Yönlendirilmesi

Java da İşleçler, Ders #3 (4 Kasım 2009)

İçerik. Java da İşleçler, İşleçler. Aritmetik İşleçler - 1. Aritmetik İşleçler - 2. Geçen ders: Bu ders: BS-515 Nesneye Yönelik Programlama

Internet Programming II

3.Hafta. . Kontrol Deyimleri/İfadeler

NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 2

KONTROL YAPILARI JAVADA UC TURLU KONTROL YAPISI VARDIR BUNLAR İF ELSE İF ELSE İF SWİTCH YAPILARIDIR. IF ELSE YAPISI if (deger) { }else {

C# Yazım Kuralları ERCİYES. Ü. BİLGİSAYAR M. COMPUTER PROGRAMMING II 1 FEHİM KÖYLÜ

M.ilkucar MAKU MYO 1

ALGORİTMA VE PROGRAMLAMA I

Nesne Yönelimli Programlama

JAVA DÖNGÜ DEYİMLERİ. For Döngüsü

Akış Konrol Mekanizmaları

Java da Program Denetimi ve Operatörler. Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 2 1

Programlama Dilleri 3

C Dersleri Bölüm 3 : Program akışı

1. Aşağıdaki program parçacığını çalıştırdığınızda result ve param değişkenlerinin aldığı en son değerleri ve programın çıktısını yazınız.

İstanbul Teknik Üniversitesi IEEE Öğrenci Kolu

Ders 6: Karşılaştırma Deyimleri

BMÜ-111 Algoritma ve Programlama. Bölüm 5. Tek Boyutlu Diziler

C# Çalışma Örnekleri

Kodlanacak programlama dilinin kaynaklarından faydalanılarak kod yazımı yapılır.

Algoritma ve Programlamaya Giriş II JAVA İLE PROGRAMLAMA. Muhammet BAYKARA

Mühendislik Fakültesi Elektrik-Elektronik Mühendisliği C Programlama 5. Bölüm Karar ve Çevrim Kontrol Yapıları

HSancak Nesne Tabanlı Programlama I Ders Notları

Döngü (Loop) Deyimleri / Veri Belirleyicileri / Matematiksel Fonksiyonlar

8- PROGRAM YAPISAL KOMUTLARI ve. M.ilkucar MAKU MYO 1

BMT 101 Algoritma ve Programlama I 7. Hafta. Yük. Müh. Köksal Gündoğdu 1

Döngüler. Tablo 15.1: Ruby de Başlıca Döngü Yapıları

KARAR YAPILARI. Acaba hangi yöne gitmeliyim? Oturduğun yerden kalkıp, kapıya varana kadar kaç kez karar verdiniz biliyor musunuz?

Java dili, aşağıdakiler de dahil olmak üzere çok çeşitli denetleyici türlerine sahiptir.

BBS515 Nesneye Yönelik Programlama. Ders 3 Zümra Kavafoğlu

HSancak Nesne Tabanlı Programlama I Ders Notları

Java String İşlemleri

Program AkıĢ Kontrol Yapıları

BÖLÜM 6: KARŞILAŞTIRMALI KONTROL YAPILARI

J A V A D A P R O G R A M D E N E T İ M İ V E O P E R A T Ö R L E R

Kodlanacak programlama dilinin kaynaklarından faydalanılarak kod yazımı yapılır.

GÜZ DÖNEMİ AKT105 BİLGİSAYAR PROGRAMLAMA DERSİ 5. UYGULAMA ERKEKLER İÇİN (BOY-108) BAYANLAR İÇİN (BOY-112)

ALGORİTMA VE PROGRAMLAMA I

Lab7 DOĞU AKDENİZ ÜNİVERSİTESİ BİLGİSAYAR VE TEKNOLOJİ YÜKSEKOKULU BİLGİSAYAR PROGRAMCILIĞI. BTEP212 Java. Uygulama1: package javaapplication58;

Döngü ve Koşul Deyimleri

5. Atlama, Karar ve Çevrim Kontrol Deyimleri

BİLGİSAYAR TEMELLERİ VE PROGRAMLAMAYA GİRİŞ

/*Aşağıda ki kodları doğru şekilde anlar ve kullanırsanız java da sınıfları biraz da olsa anlamış olursunuz.*/

// hataları işaret eden referans

if (ad == "Sabri") Console.WriteLine("Merhaba Sabri. Ne zamandır gözükmüyodun...");

D İ Z İ L E R A R R A Y S

Chapter 8. Komut düzeyi kontrol yapıları ISBN

Upgrading Internet Technology skills of Information and Communication Technologies (ICT) Professionals. Module 2:Server Side Internet Programming

Java da Program Denetimi ve Operatörler

BIL1202 ALGORİTMA VE PROGRAMLAMAYA GİRİŞ

ALGORİTMA VE PROGRAMLAMA I

Mantıksal (Logic) Operatörler

Ders 7: Döngüler. Giriş. 7.1 while Döngüsü

BİL-142 Bilgisayar Programlama II

Nesne Tabanlı Programlama

GÜZ DÖNEMİ AKT105 BİLGİSAYAR PROGRAMLAMA DERSİ 4. UYGULAMA

DÖNGÜLER BMÜ-101 ALGORİTMA VE PROGRAMLAMAYA GİRİŞ LABORATUARI BMÜ-101 ALGORİTMA VE PROGRAMLAMAYA DENEY-4 FÖYÜ GİRİŞ LABORATUARI.

JAVA DEĞİŞKEN VE OPERATÖRLER. M.İLKUÇAR - 1

Algoritma ve Akış Şemaları

C# Console Uygulamaları ifelse Yapıları 2

Bölüm 4 C de Program Kontrolü

Görsel Programlama DERS 03. Görsel Programlama - Ders03/ 1

Soru 1: Fahrenheit cinsinden verilen sıcaklığı Kelvin'e çeviren bir program yazınız. Aşağıdaki dönüşüm formülünü kullanabilirsiniz:

Kontrol Yapıları (2)

MAT213 BİLGİSAYAR PROGRAMLAMA I DERSİ Ders 1: Programlamaya Giriş

Java da Soyutlama ( Abstraction ) ve Çok-biçimlilik ( Polymorphism )

JAVA PROGRAMLAMA DİLİ ÖZELLİKLERİ

BİLGİSAYAR MÜHENDİSLİĞİ ALGORİTMA VE PROGRAMLAMA II 2.HAFTA SWİTCH (CASE), SAYAÇLAR, DÖNGÜLER,

BBS515 Nesneye Yönelik Programlama. Ders 2 Zümra Kavafoğlu

for döngüsü for (başlangıç değeri; şart; artım) ifade; for (başlangıç değeri; şart; artım) { ifadeler; }

BİL-141 Bilgisayar Programlama I (Java)

Temel Bilgisayar Programlama

Döngüler - Loops 4/9/2010. ENF-102 Jeoloji Giriş. Sayaç kontrollü bir döngüdeki temel öğeler. Sayaç (counter) Kontrollü Döngüler.

Nesne Tabanlı Programlama

Hafta 9 C Dilinde Kontrol ve Döngü Yapıları

ESM-361 Mikroişlemciler. 3. Hafta Ders Öğretim Üyesi Dr.Öğr.Üyesi Ayşe DEMİRHAN

C# Programlama Dili. İlk programımız Tür dönüşümü Yorum ekleme Operatörler

MTK467 Nesneye Yönelik Programlama. Hafta 4 - Döngüler Zümra Kavafoğlu

Nesne Yönelimli Programlama

JAVADA DİZİ İŞLEMLERİ

BMÜ-101 ALGORİTMA VE PROGRAMLAMAYA GİRİŞ LABORATUARI

Dizi ( Array ) ve Dizgi ( String )

Akış Kontrol Mekanizmaları

/*int sayi1, sayi2,toplam=0;

SQL PROGRAMLAMA. Bir batch, bir arada bulunan bir dizi SQL deyimidir. Batch ayıracı GO deyimidir.

1. HAFTA TEMEL KURULUM İŞLEMLERİ ve NESNE TABANLI PROGRAMLAMA KAVRAMLARI

Transkript:

Programın Akışının Denetimi Bir program komutların yazıldığı sırada akar. Ama çoğunlukla, bu akışı yönlendirmek gerekir. Bu iş için denetim yapılarını kullanırız. Bunlar iki gruba ayrılabilir: Yönlendiriciler ve Döngüler. Bilgisayarların karmaşık işleri yapmasını sağlayan bu yapılar 6 tanedir: 1. Blok 2. while döngüsü 3. do... while döngüsü 4. for döngüsü 5.if yönlendirmesi 6. switch yönlendirmesi Bu yapıların her birisi tek bir deyim olarak düşünülür, ama gerçekte herbiri birden çok deyim içeren birer yapıdır. BLOK Bir arada yürütülmesi istenen deyimleri içeren bir yapıdır. Söz dizimi şöyledir: deyimler blok u içindeki deyimler istenildiği sayıda java deyimlerinden oluşur. Hiç deyim içermeyen bloklara boş blok denir. İç-içe bloklarda olabilir. Deyimler, basit java deyimleri olabileceği gibi, yapısal deyimlerde olabilir. ÖRNEKLER: System.out.println( Lefkoşa başkenttir. ); //bu blok x ve y değşkenlerinin yerlerini değiştirir. int yedek; //geçiçi değişken yedek= x;// x değerini yedek adresine al x=y; // y değerini x adresine al BÖLÜM2:Programın Akışının Denetimi-- Belma SIRDAŞ 1

y=yedek; //yedek değerini y nin adresine al Blok içinde bildirimi yapılan bir değişken, o blok için bir yerel değişkendir. Yerel değişkene blok dışından erişilemez. Blokun işi bitince, yerel değişkene ayrılan adres yok olur. Bu nedenle, bir değişkenin erişilebilirlik bölgesi (scope) o değişkenin tanımladığı bloktur. WHILE DÖNGÜSÜ Bir yada bir grup deyimin, belli bir koşul sağlandığı sürece takrarlanması için kullanılan vir denetim yapısıdır. Söz dizimi: while (mantıksal_deyim) deyim deyim sayısı birden çoksa, onları bir blok içine alırız: while (mantıksal_deyim) deyimler mantıksal_deyim True (doğru) ise deyim ya da blok içindeki deyimler yürütülür. Sonra program akışı while in başına döner ve tekrar mantıksal_deyim i denetler. mantıksal_deyim doğru ise deyim ya da blok içindeki deyimler yeniden yürütülür. Bu döngü, mantıksal_deyim False (yanlış) değerini alana kadar yinelenir. Dolayısıyla, yinelenen deyim(ler) in, mantıksal_deyim in değerini sonlu sayıda yineleme sonunda değiştirmesi gerekir. Aksi halde, sonsuz döngü dediğimiz olgu ortaya çıkar: Söz konusu deyim(ler), kesintisiz (programın koşması durdurulmazsa sonsuza kadar) devam eder. Buna sonsuz döngü denir. Örnekler Aşağıdaki döngü 1, 2, 3, 4, 5 sayılarını yazar: int number; // Yazılacak sayıları tutacak değişken number = 1; // değişkene verilen ilk değer: 1. while ( number < 6 ) // mantıksal_deyim System.out.println(number); number = number + 1; // sonraki sayıyı al BÖLÜM2:Programın Akışının Denetimi-- Belma SIRDAŞ 2

System.out.println("Done!"); Aşağıdaki program 5! = 1*2*3*4*5*6 çarpansal (faktöryel) değerini bulur ve yazar: int n = 6, faktoryel = 1; while ( n >= 1) faktoryel *= n; n-- ; System.out.println ( 6! = + faktoryel); do..while.. döngüsü Bir mantıksal deyim sağlanana kadar belli deyim(ler)in tekrarlanmasını sağlayan denetim yapısıdır. Sözdizimi şöyledir: İşlenecek deyim tek ise sözdizimi şöyledir: do deyim while ( mantıksal_deyim ); İşlenecek deyim birden çok ise, o deyimler bir blok içine yazılır: Örnekler do deyimler while ( mantıksal_deyim ); /* Program: DoWhile01 */ public class DoWhile01 public static void main (String args[]) int m = 1; do System.out.println("m = m+1 yapıyor " + m); x++; while (m <= 10); /* Program: DoWhile02 */ public class DoWhile02 public static void main (String args[]) int n = 1, toplam = 0; do BÖLÜM2:Programın Akışının Denetimi-- Belma SIRDAŞ 3

toplam += n ; while (n <= 100); System.out.println("100 e kadar tamsayıların toplamı = " + toplam); İpucu Soru: while döngüsü ile do-while döngüsü arasındaki fark nedir? Yanıt: while döngüsü önce mantıksal deyimi denetler. Doğru ise döngü deyimlerini koşturur; değilse while den sonraki deyime geçer. Do-while döngüsünde ise, döngü deyim(ler)i enaz bir kez koşturulur, sonra mantıksal_deyim denetlenir. Yanlış ise deyim(ler) tekrar eder; doğru ise tekrarlama biter ve do-while in altındaki deyime geçer. For döngüsü İstenen deyim(ler)in kaç kez tekrarlanacağı biliniyorsa, for döngü yapısını kullanmak kolaydır. Tekrarlanacak deyim tek ise sözdizimi şöyledir: for ( sayacın_ilk_değeri; tekrarlama_koşulu; sayaç_değerinin_değişimi ) deyim Tekrarlanacak deyimler birden çoksa, onlar bir blok içine alınır, sözdizimi şöyle olur: for ( Örnekler: deyimler sayacın_ilk_değeri; tekrarlama_koşulu; sayaç_değerinin_değişimi ) /* Program: For01.java */ public class For01 public static void main(string args[]) int i; int sum = 0 ; for (i=1; i <=100; i++) sum = sum + i; System.out.println(sum); BÖLÜM2:Programın Akışının Denetimi-- Belma SIRDAŞ 4

// main sonu // class sonu sayac bir değişkendir. int vb sayılabilir bir veri tipinden olmalıdır. sayacın_ilk_değeri o değişkene başlangıç değerini atayan bir java deyimidir. Örneğin, yukarıdaki programda int i = 1 deyimi, i sayacına ilk değer olarak 1 sayısını atayan bir deyimdir. Sayacın tipine uyan her atama geçerlidir. tekrarlama_koşulu bir mantıksal_deyim olmalıdır. i <= 1 deyimi, i sayacı için döngü süresince sağlanması gereken mantıksal koşuldur. Bu koşul sağlanmaz olduğu anda döngü sona erecektir. i++ deyimi, döngünün her adımında i sayacının nasıl değişeceğini belirler. Sayacın ilk değerinden son değerine gidişini sağlayan herhangi bir java deyimi geçerlidir. for (sayacın_ilk_değeri; tekrarlama_koşulu; sayaç_değerinin_değişimi) ifadesinde, ( ) içindeki deyimlerden birisi, ikisi veya her üçü de boş olabilir. Boş ise, bu deyimin daima True değerine sahip olduğu varsayılır. Dolayısyla, bu durumda sonsuz döngüye girilir. Örneğin for (;;) deyimi sonsuz döngüdür. Bu döngü ancak break deyimi ile kesilebilir. Bu deyim while (true) deyimine denktir. BÖLÜM2:Programın Akışının Denetimi-- Belma SIRDAŞ 5

/* Program: For02.java */ public class For02 public static void main(string args[]) int sum = 0 ; for (int i=1; i <=100; i++) sum = sum + i; System.out.println(sum); // main sonu // class sonu İpucu: Soru: For01.java ile For02.java arasındaki fark nedir? Yanıt: For01.java programında i değişkeni main metodunun bir yerel değişkenidir. main içindeki her deyim onu görebilir ve kullanabilir. Gerçekten, for denetim yapısı, kendi dışında bildirimi yapılan i değişkenini tanımakta ve kullanabilmektedir. For02.java programında i değişkeni for denetim yapısının bir yerel değişkenidir. Yalnızca bu yapı içinde tanınır ve kullanılabilir. main veya class içindeki başka deyimler bunu göremez ve kullanamaz. Böyle olduğunu görmek için, örneğin, for döngüsünden sonra System.out.println(i); deyimini koyunuz. Programınızın derlenemediğini göreceksiniz. /* Program: For03.java Bu program derlenemez; çünkü i değişkeni for yapısının bir yerel değşkenidir, main metodu onu göremez BÖLÜM2:Programın Akışının Denetimi-- Belma SIRDAŞ 6

*/ public class For03 public static void main(string args[]) int sum = 0 ; for (int i=1; i <=100; i++) sum = sum + i; System.out.println(sum); System.out.println(i); // main sonu // class sonu Sayaç değişkenleri int tipinden seçilmek zorunda değildir. Sıralanmış her veri tipinden sayaç değişkeni seçilebilir. Char kümesi sıralanmış bir veri tipidir. Aşağıdaki program bu kümeden seçilen bir sayaç kullanmaktadır: /* Program For04.java */ // Bu döngü alfabenin büyük harflerini tek satıra yazar char ch; // sayaç değişkeni // one of the letters to be printed. for ( char ch = 'A'; ch <= 'Z'; ch++ ) System.out.print(ch); System.out.println(); Yönlendiriciler Program akışını, belli mantıksal koşullara göre istenen yöne saptıran denetim yapılarıdır. Bunlar da kendi içinde üçe ayrılır: if, if-else ve case yapıları. if yönlendirmesi Bazı deyimlerin işlemesini, ancak belirli bir koşulların sağlanması durumunda isteyebiliriz. Bu durumda if yönlendirmesini kullanırız. Bu yönlendirmenin sözdizimi şöyledir: BÖLÜM2:Programın Akışının Denetimi-- Belma SIRDAŞ 7

if ( mantıksal_deyim ) deyim-1 Eğer mantıksal_deyim true değerini alıyorsa deyim-1 işlenir ve program if denetiminden sonraki deyimi işlemeye başlar. Eğer mantıksal_deyim false değerini alıyorsa deyim(ler)-1 işlenmeden atlanır ve program if denetiminden sonraki deyimi işlemeye başlar. if-else yönlendirmesi Bazı durumlarda, belirli bir koşulun sağlanması durumunda ona bağlı bir deyimin, aksi halde başka bir deyimin işlemesi istenebilir. Başka bir deyişle, bir koşulun sağlanıp sağlanmamasına bağlı olarak, iki seçenekten birisini mutlaka yaptırmak gerekir. Bu durumda, if-else yapısını kullanırız. Bu yapının sözdizimi şöyledir: if ( mantıksal_deyim ) deyim-1 else deyim-2 Eğer işlenecek deyim birden çok ise, bunlar bir blok içine alınabilir: if ( mantıksal_deyim ) deyimler-1 else deyimler-2 Eğer mantıksal_deyim true değerini alıyorsa deyim(ler)-1 işlenir ve program if denetiminden sonraki deyimi işlemeye başlar. Eğer mantıksal_deyim false değerini alıyorsa deyim(ler)-1 işlenmeden atlanır ve deyim(ler)-2 işlenir. Sonra, program if denetiminden sonraki deyimi işlemeye başlar. Örnekler if ( ısı < 10) System.out.println("Hava soğuktur."); BÖLÜM2:Programın Akışının Denetimi-- Belma SIRDAŞ 8

else if (ısı < 20) System.out.println("Hava ılıktır."); else System.out.println("Hava sıcaktır."); /* Program IfElse01.java */ public class IfElse01 public static void main ( String[] args ) int n = 18 ; if ( n % 3 == 0 ) System.out.println (n + " sayısı 3 ile tam bölünür."); else System.out.println (n + " sayısı 3 ile tam bölünmez."); // main sonu // class sonu /* Program IfElse02.java */ public class IfElse02 public static void main(string[] args) int puan = 76; char karne; if (puan >= 90) karne = 'A'; else if (puan >= 80) karne = 'B'; else if (puan >= 70) karne = 'C'; BÖLÜM2:Programın Akışının Denetimi-- Belma SIRDAŞ 9

else if (puan >= 60) karne = 'D'; else karne = 'F'; System.out.println("Karne Notu = " + karne); switch-case denetim yapısı Program akışı birden çok koşula bağlı olarak farklı seçeneklerden birisine yönlendirilecekse, iç-içe ifelse denetimi yerine switch-case denetimi daha kolay olur. Bunun için, int ya da char tiplerinden bir seçici değişken ya da ifade (formül) kullanılır. Seçici değişkenin ya da ifadenin alacağı sabit değerlere göre program akışı istenen seçeneğe saptırılır. Sözdizimi şöyledir: switch ( seçici_değişken veya ifade ) case sabit-1: deyim-1 break; case sabit-2: deyim-2 break;.. // ( diğer haller). case sabit-n: deyim-n break; default: // isteğe bağlıdır BÖLÜM2:Programın Akışının Denetimi-- Belma SIRDAŞ 10

deyim-(n+1) // switch sonu Örnekler: /* Program SwitchCase01.java */ public class SwitchCase01 public static void main(string[] args) int ay = 8; switch (ay) case 1: System.out.println("Ocak"); break; case 2: System.out.println("Şubat"); break; case 3: System.out.println("Mart"); break; case 4: System.out.println("Nisan"); break; case 5: System.out.println("Mayıs"); break; case 6: System.out.println("Haziran"); break; case 7: System.out.println("Temmuz"); break; case 8: System.out.println("Ağustos"); break; case 9: System.out.println("Eylül"); break; case 10: System.out.println("Ekim"); break; case 11: System.out.println("Kasım"); break; case 12: System.out.println("Aralık"); break; /* SwitchCase03.java */ class SwitchCase03 public static void main ( String[] args ) char ch = 'k' ; switch (ch) case 'k': System.out.println("Küçük 'k' harfi girdiniz. "); BÖLÜM2:Programın Akışının Denetimi-- Belma SIRDAŞ 11

break; case 'K': System.out.println("Büyük 'K' harfi girdiniz. "); break; default : System.out.println("Büyük veya küçük 'K' harfi girmediniz. "); // switch sonu // main sonu // class sonu BÖLÜM2:Programın Akışının Denetimi-- Belma SIRDAŞ 12