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

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

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

M.ilkucar MAKU MYO 1

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

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

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

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

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

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

C# Çalışma Örnekleri

Ders - 7 while döngüsü

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

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

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.

MAT213 Bilgisayar Programlama I

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

ALGORİTMA (ALGORITHM) M.İLKUÇAR -

HSancak Nesne Tabanlı Programlama I Ders Notları

BIL1202 ALGORİTMA VE PROGRAMLAMAYA GİRİŞ

3.Hafta. . Kontrol Deyimleri/İfadeler

elemanlarının gezilmesine yönelik bir örnek sunulmuştur, inceleyiniz.

Görsel Programlama 1

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

BPR152-Algoritma ve Programlama II Uygulama -8

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

İNÖNÜ ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ 2. SINIF 1. DÖNEM VERİ YAPILARI DERSİ LABORATUAR ÖDEVİ

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

// hataları işaret eden referans

BMT 101 Algoritma ve Programlama I 8. Hafta. Yük. Müh. Köksal GÜNDOĞDU 1

ALGORİTMA VE PROGRAMLAMA I

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

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

BM102 BİLGİSAYAR PROGRAMLAMA II LABORATUVAR UYGULAMALARI. 3Hafta

Sınav Dağılım & IMKB Endeks

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

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

1. Her marka için 3 aylık satış toplamı nedir? (Tablodaki satır toplamları)

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

11- FONKSİYONLAR (FUNCTIONS)

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

BİL-141 Bilgisayar Programlama I (Java)

JAVA PROGRAMLAMA DİLİ ÖZELLİKLERİ

Örnek 1: Programı yazın ve çalıştırın.

Nesne Yönelimli Programlama

BİL-141 Bilgisayar Programlama I (Java)

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

disp VEYA fprintf KOMUTLARIYLA EKRANA MESAJ YAZDIRMA

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

Temel Veri Türü İşlemleri

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.

PROGRAMLAMA TEMELLERİ DERSİ ÖZETİ

BİLGİSAYAR PROGRAMLAMA. Algoritma ve Akış Şemaları

7.1- C#.net Giriş Çıkış İşlemleri ve Visual Studio. M.İLKUÇAR - 1

Bilgisayar Teknolojileri Bölümü Bilgisayar Programcılığı Programı. Öğr. Gör. Cansu AYVAZ GÜVEN

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

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

Akış Konrol Mekanizmaları

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

Nesne Yönelimli Programlama

Java String İşlemleri

Program AkıĢ Kontrol Yapıları

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.

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

Çoktan Seçmeli Değerlendirme Soruları Akış Şemaları İle Algoritma Geliştirme Örnekleri Giriş 39 1.Gündelik Hayattan Algoritma Örnekleri 39 2.Say

Programlama Dilleri 3

5- AKIŞ DİYAGRAMLARI (FLOW- CHART) M.İLKUÇAR - 1

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

2 ALGORİTMA VE AKIŞ DİYAGRAMLARI

JAVADA METOTLAR. BMÜ-111 Algoritma ve Programlama. Yrd. Doç. Dr. İlhan AYDIN

NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 2

ALGORİTMA VE PROGRAMLAMA I

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

Akış Kontrol Mekanizmaları

Dizi ( Array ) ve Dizgi ( String )

EMT2226 Nesne Yönelimli Programlamaya Giriş

PROGRAMLAMA DİLLERİ I

Sınav tarihi : Süre : 60 dak. a) ABCDE b) BCDE c) ABCD d) kod hatalı e) BCD

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

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

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

Java da Program Denetimi ve Operatörler

Diziler. Yrd.Doç.Dr.Bülent ÇOBANOĞLU

C# Örnek Uygulamalar I

Nesne Tabanlı Programlama

NESNEYE YÖNELİK PROGRAMLAMA

BİL-141 Bilgisayar Programlama I (Java)

Diziler (Arrays) Çok Boyutlu Diziler

HSancak Nesne Tabanlı Programlama I Ders Notları

Lab Notları 4. for ( ilklenme yeri bir kez çalışır ; Kontrol yeri her döngüde bakılır ; Güncelleme yeri her döngüde )

Upgrading Internet Technology skills of Information and Communication Technologies (ICT) Professionals

Güz Yarıyılı Balıkesir Üniversitesi Bilgisayar Mühendisliği Bölümü

Güz Yarıyılı Balıkesir Üniversitesi Bilgisayar Mühendisliği Bölümü

İST 264 VERİ YAPILARI Bitirme Sınavı A Grubu

BTP 207 İNTERNET PROGRAMCILIĞI I. Ders 9

7.1- Operatörler ve Giriş-Çıkış İşlemleri. M.İLKUÇAR - 1

Yığıtın en üstündeki öğeyi değer olarak alır; ama onu yığıttan almaz, yerinde bırakır.

a, b, c değişkenleri ile tanımlı üç sayının büyükten küçüğe sıralamasını bulup sıralamaya uygun abc biçiminde ekrana yazdıran programın akış şeması.

Java 2 Standart Edition SDK Kurulum ve Java ya Giriş

Transkript:

while(), do-while(), for()

Döngü (loop) : Bir koşul sağlandığı (true olduğu) sürece bir veya birden çok komutun tekrarlanması işlemidir.

Java Döngüler (loops) While() do-while() for ( ) while ( koşul ) işlemler; do işlemler; while (koşul ); for (başlangıç ; koşul ; arttırma) işlemler; for( tip : dizi ) işlemler;

PROGRAM YAPISAL KOMUTLARI while ( ) döngüsü while ( koşul ) ------------ ; ------------ ; Döngü Bloğu ------------ ; koşul true olduğu sürece döngü bloğu içerisindeki komutlar çalışacaktır.

while ( ) döngüsü PROGRAM YAPISAL KOMUTLARI int x=5; while ( x<5 ) System.out.print(x); //koşul sağlanmadığından döngüye girilmez int x=5; while ( x<=5 ) System.out.print (x); //koşul sürekli sağlanıyor, sonsuz döngü int x=5; while ( x>=1 ) System.out.print (x); x--; // 54321 yazar NOT : Bu tür döngülerde döngü bloğu içerisinde döngünün koşulunu etkileyen mutlaka bir komut satırı olmalıdır yada döngüden break veya return ile çıkılmalıdır. Aksi halde sonsuz döngü olacaktır. Koşul sağlanmaz ise döngüye hiç girilmez. Koşul sürekli sağlanıyor ise sonsuz döngü oluşur.

9- PROGRAM YAPISAL KOMUTLARI break : İçinde bulunduğu döngüden çıkar. continue : İçinde bulunduğu döngünün koşul ifadesine gönderir. return : İçinde bulunduğu fonksiyondan çıkar. Eğer bu fonksiyon Main() fonksiyon ise program sonlanır. Return ile değer de gönderebiliriz. Bakınız Fonksiyonlar

9- PROGRAM YAPISAL KOMUTLARI while ( ) döngüsü int x=0; while (x<10) x++ ; if( (x%2) == 0 ) continue; System.out.print (x); int x=0; while (x<10) x++; if( (x%2)!= 0 ) break; System.out.printe(x); /* 1 3 5 7 9 yazar continue ile döngünün başına (koşul ifadesine) gönderir */ // hiçbir şey yazmaz /* break döngünün dışına çıkılabilir */

while ( ) döngüsü PROGRAM YAPISAL KOMUTLARI int x=0; while ( x<10 ) x++; if( (X%2)== 0 ) System.out.print (x); //2 4 6 8 10 int x=1; while ( x<=5 ) int y= Math.Pow(2,x); System.out.printf( 2 üssü %d, y ); x++; //2 4 8 16 32

PROGRAM YAPISAL KOMUTLARI while ( ) döngüsü int x=6; while ( x!=5 ) int y = x * x ; System.out.print ( y ); x--; System.out.print( x ); System.out.print( y ); // Hata verir döngü içerisinde tanımlıdır. Döngü bitince y bellekten atılır NOT: Döngünün içerisinde tanımlanan değişkenler sadece döngü içerisinde geçerlidir. Döngünün dışına çıkıldığında değişken bellekten atılacaktır. Örneğimizdeki y değişkeni döngü içinde tanımlandığından, sadece döngü içinde geçerlidir.

PROGRAM YAPISAL KOMUTLARI do - while( )

PROGRAM YAPISAL KOMUTLARI do-while ( ) döngüsü do ------------ ; ------------ ; Döngü Bloğu ------------ ; while ( koşul ) ; while döngüsünden farklı olarak koşul sondadır. Dolayısıyla şart hiç sağlamasa da döngü en az bir kez çalışacaktır.

PROGRAM YAPISAL KOMUTLARI do-while ( ) döngüsü int x=5; while (x<5) System.out.print ( A ); System.out.print( B ); // çıktı olarak B int x=5; do System.out.print ( A ); while (x<5); System.out.print( B ); // çıktı olarak AB

do-while ( ) döngüsü PROGRAM YAPISAL KOMUTLARI int x=0; while (x<10) x++ ; if( (x%2)==0 ) continue; System.out.print (x); /* continue ile döngünün başına (koşul ifadesine) gönderir */ 1 3 5 7 9 int x=0; do x++; if( (x%2)==0 ) continue; System.out.print (x); while (x<10); /* continue ile döngünün sonuna (koşul ifadesine) gönderir */ 1 3 5 7 9

PROGRAM YAPISAL KOMUTLARI for ( ; ; )

PROGRAM YAPISAL KOMUTLARI for ( ) döngüsü Döngüye ilk girildiği zaman yapılacak işlemler. Bir kez çalışır. Döngüye ilk girildiğinde Döngünü koşulu. Koşulun sonucu true olduğu sürece döngü dönmeye devam eder. Döngü her döndüğünde buraya bakılır koşul true ise devam edilir Döngü her döndüğünde önce buraya bakılır, bu bölümde bir işlem varsa yapılır. Genellikle döngünün artırma veya azaltma işlemi burada yapılır. for (... ;... ;... ) ; ; ; I II III Döngü bloğu; döngü her döndüğünde yapılacak işlemler.

for ( ) döngüsü PROGRAM YAPISAL KOMUTLARI int x=0; while (x<5) System.out.print(x); x++; // 0 1 2 3 4 for (int x=0 ; x<5 ; x++) System.out.print (x); // 0 1 2 3 4

PROGRAM YAPISAL KOMUTLARI for ( ) döngüsü for (int x=0 ; x<50 ; x+=10 ) System.out.print (x); x 0 10 20 30 40

PROGRAM YAPISAL KOMUTLARI for ( ) döngüsü // ekrana ne yazar? for (int x=50 ; x<50 ; x+=10 ) System.out.print (x);

PROGRAM YAPISAL KOMUTLARI for ( ) döngüsü for (int x=1, y= 5 ; x<y ; x++, y--) System.out.printf ( %d %d %d \n, x, y, x * y ); System.out.print ( x * y ); // Bu satır HATALI neden? x y x*y 1 5 5 2 4 8

PROGRAM YAPISAL KOMUTLARI Örnek // Ekrana ne yazar? for ( int x =5, y= 5 ; x!=y ; x++, y-- ) System.out.println(x*y ); System.out.println( "B" ); B yazar

for ( ) döngüsü 9- PROGRAM YAPISAL KOMUTLARI int x=1 ; for ( ; x<5 ; x++ ) System.out.print ( x ); int x=1 ; for ( ; x<5 ; ) System.out.print ( x ); x++; int x=1 ; for ( ; ; ) if( x>=5 ) break; System.out.print ( x ); x++;

PROGRAM YAPISAL KOMUTLARI for ( ) döngüsü for (int x = 1 ; x>0 && x<3 ; x++ ) System.out.print ( x ); x++; // 1

PROGRAM YAPISAL KOMUTLARI Örn: Rastgele tutulan sayılardan üst üste aynı sayı gelene kadar devam ettiren ve kaçıncı denemede bulduğunu yazdıran program import java.util.random; // EKLEYİNİXZ int say1, say2 ; Random r = new Random(); int n=0 ; for ( ; ; ) n++; say1 = r.nextint (100) ; // say1=(int)(math.random()*100); say2 = r.nextint (100 ); // say2=(int)(math.random()*100);) if ( say1 == say2 ) break ; System.out.printf ( %d kez denendi, n );

PROGRAM YAPISAL KOMUTLARI for ( değişken x : dizi )

for( değişken : dizi ) döngüsü 9- PROGRAM YAPISAL KOMUTLARI Bir grup elemanı ilk elemandan başlayıp son elamana kadar teker teker ele alan bir döngüdür. for ( tip degişken : koleksiyon). İlk elemandan başlamak üzere her döndüğünde grup taki sırası gelen elemanı alıp deger e aktarır. tip, deger deki verinin tipidir.

9- PROGRAM YAPISAL KOMUTLARI - for() döngüsü örneği string s= "Dün hava kar yağışlıydı." ; for ( string kelime : s.split(" ")) System.out.printf ("\n %s ", kelime ); Ekran Çıktısı : Dün hava kar yağışlıydı.

iç içe döngüler (nested loops) PROGRAM YAPISAL KOMUTLARI for ( int x =1 ; x<=5 ; x++ ) Komut1; // 5 kez çalışır for (int y=1 ; y<=3 ; y++ ) Komut2; // 5*3 kez çalışır Komut1 ; x y x kez çalışır Komut2 ; x*y kez çalışır İçteki döngü (y), dıştaki döngünün(x) bir komutu gibidir. Dolayısıyla dıştaki döngü her döndüğünde içteki döngü sonuna kadar dönecektir.

PROGRAM YAPISAL KOMUTLARI iç içe döngüler for ( int x =1 ; x<=3 ; x++ ) System.out.println( x ); // bu satır x döngüsü kadar çalışır 3 kez for (int y=1 ; y<=4; y++ ) System.out.print ( y ); // bu satır x in her değeri için, y döngüsü kadar çalışır. Yani x* y kez çalışır x: 1 y : 1 2 3 4 x: 2 y: 1 2 3 4 x: 3 Y: 1 2 3 4 x, 3 kez çalışırken, y değeri x in her değeri için 4 kez çalışacaktır. Sonuç olarak en içteki döngüdeki bir satır 3*4=12 kez çalışmış olur.

PROGRAM YAPISAL KOMUTLARI iç içe döngüler. Örnek; for ( int x =1 ; x<=4 ; x++ ) for (int y=1 ; y<=3 ; y++ ) System.out.print( y ); System.out.println( ); // satırbaşı yapar 1 2 3 1 2 3 1 2 3 1 2 3 1 1 1 2 2 2 3 3 3 4 4 4 Şeklinde çıktı vermesi için programda nasıl bir değişiklik yapılmalıdır.

???

Çeşitli Örnekler

9- PROGRAM YAPISAL KOMUTLARI Örnek-5: Klavyeden girilen bir sayının faktöriyelini bulup yazdıran program int f=1; int x = oku.nextint( ) ; for ( int y=1 ; y<=x ; y++ ) f = f * y ; System.out.printf ( %d! = %d, x, y ); Örneğin x=4 için ekrana; 4!=24 yazar

Örnek-1: Sayı tahmin oyunu Scanner oku = new Scanner(System.in); String cev = "E"; while (cev.touppercase() == "E") int sayac = 1; Random r = new Random(); int x = r.nextint(100); // *1,101) arasında rastgele sayı türetir while (true) System.out.print("\nBir sayı tahmin ediniz:"); int tahmin = oku.nextint(); sayac++; if (tahmin > x) System.out.print("AŞAĞI"); if (tahmin < x) System.out.print("YUKARI"); if (tahmin == x) System.out.printf("TEBRİKLER %d. tahminde buldunuz\n\n", sayac); System.out.print("Devam edilecek mi [e/h]"); cev = oku.next(); break; // 2. while döngüsünden çıkar

9- PROGRAM YAPISAL KOMUTLARI Örnek -2 : ASCII Tablosunu ekrana 10 arlı sütunlar halinde yazdırınız? public static void main(string[] args) for (int m = 0 ; m < 256 ; m++ ) if ( ( m % 10) == 0 ) System.out.println( ) ; // Satır başı Console.Write( %d -> %c ", m, (char) m ) ; 65->A 66->B 67->C 68->D 69->E 70->F 71->G 72->H 73->I 74>J 75->K 76->L 77->M 78->N 79->O 80->R 81->S 82->T 83->U 84->V.

Örnek -3 : 1 den başlayıp klavyeden girilen sayı kadar aşağıdaki şekilde görüldüğü gibi (15 için) * yazdıran programı yazınız. * *** ***** ******* ********* *********** ************* ***************

//Cevap-3; public static void main(string[] args) Scanner oku = new Scanner(System.in); int n; do System.out.print("Please enter the number of rows ([1, 15]: "); n = oku.nextint(); while (n < 1 n > 15); for (int row = 1; row <= n; row++) for (int space = 0; space < n-row; space++) System.out.print(" "); for (int col = 0; col < 2 * row - 1; col++) System.out.print('*'); System.out.println();

Örnek -4 : 1 den başlayıp klavyeden girilen sayı kadar aşağıdaki şekilde görüldüğü gibi sağa dayalı (9 için) * yazdıran programı yazınız. * ** *** **** ***** ****** ******* ******** *********

// Cevap-4; static void Main ( string[] args ) int =n oku.nextint(); for (int i=1; i<=n ; i++) System.out.println(); for (int j=9 ; j>=i ; j-- ) System.out.print(" ") ; for (int k=1 ; k<=i ; k++) System.out.print("*"); // end of method Main

9- PROGRAM YAPISAL KOMUTLARI Örnek-6 : Klavyeden girilen 10 luk sistemin 2 lik karşılığını bulan program Scanner oku = new Scanner(System.in); String s = ""; int x = 0, say = 0; x = oku.nextint(); if (x > 0) do int kalan = (x % 2); s += String.valueOf(kalan); x /= 2; while (x > 0); int boyu = s.length(); while (boyu > 0) System.out.printf(" %c ", s.charat(boyu-1)); boyu--; 15 -> 1 1 1 1 16 -> 1 0 0 0 System.out.println(Integer.toBinaryString( x) );

PROGRAM YAPISAL KOMUTLARI int x=12; System.out.println(Integer.toBinaryString( x) );//1100 System.out.println(Integer.toBinaryString(Short.MIN_VALUE)); //11111111111111111000000000000000 short x = 10; System.out.println(Integer.toBinaryString(0xFFFF & x)); // 1010 System.out.println(Integer.toBinaryString(0xFFFF & Short.MIN_VALUE)); //1000000000000000