Sunum yükleniyor. Lütfen bekleyiniz

Sunum yükleniyor. Lütfen bekleyiniz

Kontrol İfadeleri : 2.Kısım

Benzer bir sunumlar


... konulu sunumlar: "Kontrol İfadeleri : 2.Kısım"— Sunum transkripti:

1 Kontrol İfadeleri : 2.Kısım
İçerik Bir Kontrollü Döngü İfadesinde Olması Gerekenler for Döngü Deyimleri for Döngü Deyimi ile alakalı Örnekler do…while Döngü Deyimi switch Çok Seçmeli Komut break ve continue Komutları Etiketli break ve continue Komutları Mantıksal Operatörler Yapısal Programlama Özeti

2 Bir Kontrollü Döngü İfadesinde Olması Gerekenler
Sayaç-kontrollü döngü : Kontrol değişkeni (döngü sayacı) Kontrol değişkenine ilk değer verme Her dönüşte kontrol değişkenini artırma/azaltma Kontrol değişkeninin son değere ulaşıp ulaşmadığını döngüdeki şart ile tespiti

3 for ( int counter = 1; counter <= 10; counter++ )
for Döngü Komutu for ( int counter = 1; counter <= 10; counter++ ) Kontrol değişkenin bir artımı Kontrol değişkeni Kontrol değişkenin son değeri for anahtar kelime Döngünün şartı Kontrol değişkenin ilk değeri Noktalı virgül ile ayrım Noktalı virgül ie ayrım for deyiminin ayrıntılı anlatımı.

4 for Döngü Yapısı for ( ilk değer verme; döngü şartı; artış ) { komutlar; } Aynı ifade aşağıdaki gibi de yazılabilir: İlk değer verme; while ( döngü şartı ) { komutlar; artış; }

5 for İfadeleri için Örnekler
for deyiminde kontrol değişkenin değişimi Kontrol değişkenini 1’den başlatıp 100 ‘e varıncaya kadar 1 artışla ilerletecek for deyimi for ( int i = 1; i <= 100; i++ ) Kontrol değişkenini 100’den başlatıp 1‘e varıncaya kadar 1’er 1’er azaltıp ilerletecek for deyimi for ( int i = 100; i >= 1; i-- ) Kontrol değişkenini 7’den başlatıp 7’şer artışla 77 kadar ilerleyecek for deyimi for ( int i = 7; i <= 77; i += 7 )

6 Her for adımında numberı 2 arttır
// Toplam.java // 1’den 100’e kadar çift sayıların toplamı. import javax.swing.JOptionPane; 4 public class Toplam { 6 public static void main( String args[] ) { int toplam = 0; // ilk değer verme 10 // 2 den 100’e kadar çift sayıların toplamı for ( int sayi = 2; sayi <= 100; sayi += 2 ) toplam += sayi; 14 // display results JOptionPane.showMessageDialog( null, “Toplam " + toplam, “2-100 arasındaki çift sayıların toplamı", JOptionPane.INFORMATION_MESSAGE ); 19 System.exit( 0 ); // uygulamayı bitir 21 } // end main 23 24 } // end class Her for adımında numberı 2 arttır

7 // // katlanarak artan faizi hesapla. import java.text.NumberFormat; // sayısal format için gerekli class import java.util.Locale; // bölgesel bilgiler için gerekli class 5 import javax.swing.JOptionPane; import javax.swing.JTextArea; // metin alanı oluşturmak için 8 public class faizHesapla { 10 public static void main( String args[] ) { double tutar; // faiz getirisi+ anapara double anapara = ; // anapara double oran = 0.05; // faiz oranı 16 // create NumberFormat for currency in US dollar format NumberFormat moneyFormat = NumberFormat.getCurrencyInstance( Locale.US ); 19 20 // çıktıyı göstermek için JTextArea nesnesi tanımla JTextArea outputTextArea = new JTextArea(); 23 // text area ya ilk satırı set et. outputTextArea.setText( "Yıl\t hesaptaki tutar\n" ); 26

8 Append=eklemek 27 // 10 yıl için her yıla ait miktarı hesapla
for ( int yil = 1; yil <= 10; yil++ ) { // yıl için miktarı hesapla tutar = anapara * Math.pow( oran, yil ); 32 // outputTextArea nesnesine yeni bir satır ekle outputTextArea.append( yil + "\t" + moneyFormat.format( tutar ) + "\n" ); 36 } // end for 38 // sonucu göster JOptionPane.showMessageDialog( null, outputTextArea, “bileşik faiz hesabı", JOptionPane.INFORMATION_MESSAGE ); 42 System.exit( 0 ); 44 } // end main 46 47 } // end class Append=eklemek

9 do…while Döngü İfadesi
do…while yapısı while komutuna benzer. Bu döngü yapısında döngü içindeki blok en az bir defa çalışır. do…while akış diyagramı. Blok kodları [true] [false] şart

10 switch Çok-Şeçmeli Yapılar
switch deyimi Çok seçmeli zamanlar için kullanılır case a action(s) break default action(s) [true] case b action(s) case z action(s) . [false] case a case b case z break komutu ile switch akış diyagramı.

11 // SwitchTest.java // kullanıcı seçimli doğru,dörtgen ve oval çizdirme. import java.awt.Graphics; 4 import javax.swing.*; 6 public class SwitchTest extends JApplet { int secim; // kullanıcının şekil seçimi 9 // kullanıcı seçimini sorma ile apleti başlat public void init() { String input; // kullanıcıdan alınacak değer 14 // kullanıcıya seçimini sor input = JOptionPane.showInputDialog( “doğru için 1\n" + “dörtgen için 2\n" + “oval için 3 giriniz\n" ); 20 secim = Integer.parseInt( input ); // string girişini int e çevir 22 } // end method init 24 // aplet üzerine şekilleri çiz public void paint( Graphics g ) { super.paint( g ); // JApplet içerisinden paint metodunu çağır 29 for ( int i = 0; i < 10; i++ ) // 10 kez çalıştır {

12 32 switch ( secim ) // hangi şekli çizeceğine karar ver
{ case 1: // doğru çiz g.drawLine( 10, 10, 250, 10 + i * 10 ); break; // işlemi bitir 37 case 2: // dörtgen çiz g.drawRect( 10 + i * 10, 10 + i * 10, i * 10, 50 + i * 10 ); break; // işlemi bitir 42 case 3: // oval çiz g.drawOval( 10 + i * 10, 10 + i * 10, i * 10, 50 + i * 10 ); break; // işlemi bitir 47 default: // kullanıcı yanlış değer girdi g.drawString( “yanlış seçim", , 20 + i * 15 ); 51 } // end switch 53 } // end for 55 } // end method paint 57 58 } // end class SwitchTest

13 SwitchTest.java

14

15 break ve continue deyimleri
break/continue Programın akış sırasını değiştirir. break deyimi Kontrol yapısından çıkışı sağlar. while, for, do…while or switch ifadelerinde kullanılır continue deyimi Döngünün başına döner. while, for or do…while ifadelerinde kullanılır.

16 // BreakTest.java // break deyimi ile dongüyü sonlandırma import javax.swing.JOptionPane; 4 public class BreakTest { 6 public static void main( String args[] ) { String output = ""; int count; 11 for ( count = 1; count <= 10; count++ ) { // dongu sayısı 10 13 if ( count == 5 ) // sayac 5 ise dögüyü sonlandır break; 16 output += count + " "; 18 } // end for 20 output += "\n sayaç " + count+ ” olduğunda dongu sonlandırıldı”; JOptionPane.showMessageDialog( null, output ); 23 System.exit( 0 ); // uygulamayı sonlandır 25 } // end main 27 28 } // end class

17 Sayaç 5 olduğunda 16. satırı atla ve dongu başına 11. satıra dön
// ContinueTest.java // continue deyimi ile bir sonraki adıma geçme(dongu içinde). import javax.swing.JOptionPane; 4 public class ContinueTest { 6 public static void main( String args[] ) { String output = ""; 10 for ( int count = 1; count <= 10; count++ ) { // 10 sefer işle 12 if ( count == 5 ) // sayaç 5 olduğunda dongudeki kodu continue; 15 output += count + " "; 17 } // end for 19 output += "\n continue deyimi ile 5 sayısı atlandı"; JOptionPane.showMessageDialog( null, output ); 22 System.exit( 0 ); 24 } // end main 26 27 } // end class ContinueTest Sayaç 5 olduğunda 16. satırı atla ve dongu başına 11. satıra dön

18 Etiketli break ve continue İfadeleri
Etiketli blok {} arasındaki kodlar Parantez öncesi bloğu adlandırıcı etiket Etiketli break ifadesi İçinde bulunduğu bloktan çıkmasını sağlar. Blok sonundan çalışmaya devam eder. Etiketli continue ifadesi Blok içindeki kodları atlar Etiketin başına gelerek programa devam eder.

19 Stop etiketlenmiş blok
// BreakLabelTest.java // Labeled break statement. import javax.swing.JOptionPane; 4 public class BreakLabelTest { 6 public static void main( String args[] ) { String output = ""; 10 stop: { // labeled block 12 // count 10 rows for ( int row = 1; row <= 10; row++ ) { 15 // count 5 columns for ( int column = 1; column <= 5 ; column++ ) { 18 if ( row == 5 ) // row 5 ise stop bloğundan çık break stop; 21 output += "* "; 23 } // end inner for 25 output += "\n"; 27 } // end outer for 29 Stop etiketlenmiş blok 10 satır yazar İçteki dongu 5 sütün yazar Exit to line 35 (next slide)

20 30 // following line is skipped
output += "\nLoops terminated normally"; 32 } // end labeled block 34 JOptionPane.showMessageDialog( null, output, "Testing break with a label", JOptionPane.INFORMATION_MESSAGE ); 38 System.exit( 0 ); // terminate application 40 } // end main 42 43 } // end class BreakLabelTest

21 nextRow etiketlenmiş blok
// Fig. 5.14: ContinueLabelTest.java // Labeled continue statement. import javax.swing.JOptionPane; 4 public class ContinueLabelTest { 6 public static void main( String args[] ) { String output = ""; 10 nextRow: // target label of continue statement 12 // count 5 rows for ( int row = 1; row <= 5; row++ ) { output += "\n"; 16 // her satır için 10 kolon for ( int column = 1; column <= 10; column++ ) { 19 // eğer colon > satır ise bir sonraki satıra geç if ( column > row ) continue nextRow; // bir sonraki adıma atla 23 output += "* "; 25 } // end inner for 27 } // end outer for nextRow etiketlenmiş blok Loop 5 times Nested loop 10 times continue to line 11 (nextRow)

22 ContinueLabelTest.java 29
JOptionPane.showMessageDialog( null, output, "Testing continue with a label", JOptionPane.INFORMATION_MESSAGE ); 33 System.exit( 0 ); // terminate application 35 } // end main 37 38 } // end class ContinueLabelTest ContinueLabelTest.java

23 Mantıksal operatörler
Mantısal Operatörler Mantıksal operatörler Daha karışık şartlar oluşturmak amaçlı Basit şartları birleştirmek amaçlı kullanılır. Java mantıksal operatörler && (koşul AND) & (mantıksal AND) || (koşul OR) | (mantıksal OR) ^ (dışlayan OR) ! (mantıksal NOT)

24

25

26 Yapısal Programlama (Özet)
Sıralı Yapılar Java daki yerleşik ifadeler Seçimli Yapılar if, if…else ve switch Tekrarlana Yapılar while, do…while ve for


"Kontrol İfadeleri : 2.Kısım" indir ppt

Benzer bir sunumlar


Google Reklamları