1 / 26

Kontrol İfadeleri : 2 .Kısım

Kontrol İfadeleri : 2 .Kısım.

petula
Download Presentation

Kontrol İfadeleri : 2 .Kısım

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Kontrol İfadeleri : 2.Kısım İçerikBir Kontrollü Döngü İfadesinde Olması GerekenlerforDöngü DeyimleriforDöngü Deyimi ile alakalı Örneklerdo…whileDöngü DeyimiswitchÇok Seçmeli KomutbreakvecontinueKomutlarıEtiketlibreakvecontinueKomutlarıMantıksal OperatörlerYapı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. foranahtar kelime Kontrol değişkeni Noktalı virgül ile ayrım Kontrol değişkenin son değeri Noktalı virgül ie ayrım for ( int counter = 1; counter <= 10; counter++ ) Kontrol değişkenin ilk değeri Döngünün şartı Kontrol değişkenin bir artımı forDöngü Komutu fordeyiminin ayrıntılı anlatımı.

  4. forDö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 • fordeyiminde 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 1 // Toplam.java 2 // 1’den 100’e kadar çift sayıların toplamı. 3 import javax.swing.JOptionPane; 4 5 public classToplam { 6 7 public static void main( String args[] ) 8 { 9 inttoplam = 0; // ilk değer verme 10 11 // 2 den 100’e kadar çift sayıların toplamı 12 for ( intsayi = 2; sayi <= 100; sayi += 2 ) 13 toplam += sayi; 14 15 // display results 16 JOptionPane.showMessageDialog( null, “Toplam " + toplam, 17 “2-100 arasındaki çift sayıların toplamı", 18 JOptionPane.INFORMATION_MESSAGE ); 19 20 System.exit( 0 ); // uygulamayı bitir 21 22 } // end main 23 24 } // end class

  7. 1 // 2 // katlanarak artan faizi hesapla. 3 import java.text.NumberFormat; // sayısal format için gerekli class 4 import java.util.Locale; // bölgesel bilgiler için gerekli class 5 6 import javax.swing.JOptionPane; 7 import javax.swing.JTextArea;// metin alanı oluşturmak için 8 9 public classfaizHesapla { 10 11 public static void main( String args[] ) 12 { 13 doubletutar; // faiz getirisi+ anapara 14 doubleanapara = 1000.0; // anapara 15 doubleoran = 0.05; // faiz oranı 16 17 // create NumberFormat for currency in US dollar format 18 NumberFormat moneyFormat = NumberFormat.getCurrencyInstance( Locale.US ); 19 20 21 // çıktıyı göstermek için JTextArea nesnesi tanımla 22 JTextArea outputTextArea = new JTextArea(); 23 24 // text area ya ilk satırı set et. 25 outputTextArea.setText( "Yıl\t hesaptaki tutar\n" ); 26

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

  9. Blok kodları [true] şart [false] do…whileDöngü İfadesi • do…whileyapısı • whilekomutuna benzer. • Bu döngü yapısında döngü içindeki blok en az bir defa çalışır. • do…whileakış diyagramı.

  10. [true] case a case a action(s) [false] [false] [false] [true] caseb case b action(s) . . . [true] casez case z action(s) default action(s) break break break switchÇok-ŞeçmeliYapılar • switchdeyimi • Çok seçmeli zamanlar için kullanılır breakkomutu ileswitchakış diyagramı.

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

  12. 32 switch ( secim ) // hangi şekli çizeceğine karar ver 33 { 34 case1: // doğru çiz 35 g.drawLine( 10, 10, 250, 10 + i * 10 ); 36 break; // işlemi bitir 37 38 case2: // dörtgen çiz 39 g.drawRect( 10 + i * 10, 10 + i * 10, 40 50 + i * 10, 50 + i * 10 ); 41 break; // işlemi bitir 42 43 case3: // oval çiz 44 g.drawOval( 10 + i * 10, 10 + i * 10, 45 50 + i * 10, 50 + i * 10 ); 46 break; // işlemi bitir 47 48 default: // kullanıcı yanlış değer girdi 49 g.drawString( “yanlış seçim", 50 10, 20 + i * 15 ); 51 52 } // end switch 53 54 } // end for 55 56 } // end method paint 57 58 } // end class SwitchTest

  13. SwitchTest.java

  14. breakvecontinuedeyimleri • break/continue • Programın akış sırasını değiştirir. • breakdeyimi • Kontrol yapısından çıkışı sağlar. • while, for, do…while or switchifadelerinde kullanılır • continuedeyimi • Döngünün başına döner. • while, for or do…whileifadelerinde kullanılır.

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

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

  17. Etiketlibreakvecontinueİfadeleri • Etiketliblok • {}arasındaki kodlar • Parantez öncesi bloğu adlandırıcı etiket • Etiketlibreakifadesi • İçinde bulunduğu bloktan çıkmasını sağlar. • Blok sonundan çalışmaya devam eder. • Etiketlicontinueifadesi • Blok içindeki kodları atlar • Etiketin başına gelerek programa devam eder.

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

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

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

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

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

  23. Yapısal Programlama (Özet) • Sıralı Yapılar • Java daki yerleşik ifadeler • SeçimliYapılar • if, if…elseveswitch • Tekrarlana Yapılar • while, do…whilevefor

More Related