Sunum yükleniyor. Lütfen bekleyiniz

Sunum yükleniyor. Lütfen bekleyiniz

Bölüm 5 – Kontrol İfadeleri : 2.Kısım İçerik 5.1 Giriş 5.2 Bir Kontrollü Döngü İfadesinde Olması Gerekenler 5.3 for Döngü Deyimleri 5.4 for Döngü Deyimi.

Benzer bir sunumlar


... konulu sunumlar: "Bölüm 5 – Kontrol İfadeleri : 2.Kısım İçerik 5.1 Giriş 5.2 Bir Kontrollü Döngü İfadesinde Olması Gerekenler 5.3 for Döngü Deyimleri 5.4 for Döngü Deyimi."— Sunum transkripti:

1 Bölüm 5 – Kontrol İfadeleri : 2.Kısım İçerik 5.1 Giriş 5.2 Bir Kontrollü Döngü İfadesinde Olması Gerekenler 5.3 for Döngü Deyimleri 5.4 for Döngü Deyimi ile alakalı Örnekler 5.5 do…while Döngü Deyimi 5.6 switch Çok Seçmeli Komut 5.7 break ve continue Komutları 5.8 Etiketli break ve continue Komutları 5.9 Mantıksal Operatörler 5.10 Yapısal Programlama Özeti

2 5.1 Giriş Yapısal programlama komutlarına devam ediyoruz. –Java’nın kontrol komutlarını hatırlayalım

3 5.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 tesbiti

4 5.3 for Döngü Komutu Fig. 5.3 for deyiminin ayrıntılı anlatımı. 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

5 5.3 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ış ; }

6 5.4 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 ilerlecek for deyimi for ( int i = 7; i <= 77; i += 7 )

7 Sum.java Line 12 1 // Fig. 5.5: Sum.java 2 // 1’den 100’e kadar çift sayıların toplamı. 3 import javax.swing.JOptionPane; 4 5 public class Toplam { 6 7 public static void main( String args[] ) 8 { 9 int toplam = 0; // ilk değer verme // 2 den 100’e kadar çift sayıların toplamı 12 for ( int sayi = 2; sayi <= 100; sayi += 2 ) 13 toplam += sayi; // display results 16 JOptionPane.showMessageDialog( null, “Toplam " + toplam, 17 "Total Even Integers from 2 to 100", 18 JOptionPane.INFORMATION_MESSAGE ); System.exit( 0 ); // terminate application } // end main } // end class Sum increment number by 2 each iteration

8 Interest.java Lines Line 18 Line 19 1 // Fig. 5.6: Interest.java 2 // Calculating compound interest. 3 import java.text.NumberFormat; // class for numeric formatting 4 import java.util.Locale; // class for country-specific information 5 6 import javax.swing.JOptionPane; 7 import javax.swing.JTextArea; 8 9 public class Interest { public static void main( String args[] ) 12 { 13 double amount; // amount on deposit at end of each year 14 double principal = ; // initial amount before interest 15 double rate = 0.05; // interest rate // create NumberFormat for currency in US dollar format 18 NumberFormat moneyFormat = 19 NumberFormat.getCurrencyInstance( Locale.US ); // create JTextArea to display output 22 JTextArea outputTextArea = new JTextArea(); // set first line of text in outputTextArea 25 outputTextArea.setText( "Year\tAmount on deposit\n" ); 26 Java treats floating-points as type double NumberFormat can format numeric values as currency Display currency values with dollar sign ($)

9 Interest.java Lines // calculate amount on deposit for each of ten years 28 for ( int year = 1; year <= 10; year++ ) { // calculate new amount for specified year 31 amount = principal * Math.pow( rate, year ); // append one line of text to outputTextArea 34 outputTextArea.append( year + "\t" + 35 moneyFormat.format( amount ) + "\n" ); } // end for // display results 40 JOptionPane.showMessageDialog( null, outputTextArea, 41 "Compound Interest", JOptionPane.INFORMATION_MESSAGE ); System.exit( 0 ); // terminate the application } // end main } // end class Interest Calculate amount with for statement

10 5.5 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.

11 Fig. 5.8 do…while akış diyagramı. Blok kodları [true] [false] şart

12 5.6 switch Çok-Şeçmeli Yapılar switch deyimi –Çok seçmeli zamanlar için kullanılır

13 SwitchTest.java Lines 16-21: Getting user’s input 1 // Fig. 5.9: SwitchTest.java 2 // Drawing lines, rectangles or ovals based on user input. 3 import java.awt.Graphics; 4 5 import javax.swing.*; 6 7 public class SwitchTest extends JApplet { 8 int choice; // user's choice of which shape to draw 9 10 // initialize applet by obtaining user's choice 11 public void init() 12 { 13 String input; // user's input // obtain user's choice 16 input = JOptionPane.showInputDialog( 17 "Enter 1 to draw lines\n" + 18 "Enter 2 to draw rectangles\n" + 19 "Enter 3 to draw ovals\n" ); choice = Integer.parseInt( input ); // convert input to int } // end method init // draw shapes on applet's background 26 public void paint( Graphics g ) 27 { 28 super.paint( g ); // call paint method inherited from JApplet for ( int i = 0; i < 10; i++ ) { // loop 10 times (0-9) 31 Get user’s input in JApplet

14 SwitchTest.java Line 32: controlling expression Line 32: switch statement Line switch ( choice ) { // determine shape to draw case 1: // draw a line 35 g.drawLine( 10, 10, 250, 10 + i * 10 ); 36 break; // done processing case case 2: // draw a rectangle 39 g.drawRect( 10 + i * 10, 10 + i * 10, i * 10, 50 + i * 10 ); 41 break; // done processing case case 3: // draw an oval 44 g.drawOval( 10 + i * 10, 10 + i * 10, i * 10, 50 + i * 10 ); 46 break; // done processing case default: // draw string indicating invalid value entered 49 g.drawString( "Invalid value entered", 50 10, 20 + i * 15 ); } // end switch } // end for } // end method paint } // end class SwitchTest default case for invalid entries switch statement determines which case label to execute, depending on controlling expression user input ( choice ) is controlling expression

15 SwitchTest.java

16

17 Fig break komutu ile switch akış diyagramı. case a action(s) break default action(s) [ true ] case b action(s) break case z action(s) break [ false ] case a [ true ] case b case z [ false ]

18 5.7 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.

19 BreakTest.java Line 12 Lines // Fig. 5.11: BreakTest.java 2 // Terminating a loop with break. 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; for ( count = 1; count <= 10; count++ ) { // loop 10 times if ( count == 5 ) // if count is 5, 15 break; // terminate loop output += count + " "; } // end for output += "\nBroke out of loop at count = " + count; 22 JOptionPane.showMessageDialog( null, output ); System.exit( 0 ); // terminate application } // end main } // end class BreakTest Loop 10 times exit for structure ( break ) when count equals 5

20 ContinueTest.ja va Line 11 Lines // Fig. 5.12: ContinueTest.java 2 // Continuing with the next iteration of a loop. 3 import javax.swing.JOptionPane; 4 5 public class ContinueTest { 6 7 public static void main( String args[] ) 8 { 9 String output = ""; for ( int count = 1; count <= 10; count++ ) { // loop 10 times if ( count == 5 ) // if count is 5, 14 continue; // skip remaining code in loop output += count + " "; } // end for output += "\nUsed continue to skip printing 5"; 21 JOptionPane.showMessageDialog( null, output ); System.exit( 0 ); // terminate application } // end main } // end class ContinueTest Loop 10 timesSkip line 16 and proceed to line 11 when count equals 5

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

22 BreakLabelTest. java Line 11 Line 14 Line 17 Lines // Fig. 5.13: 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 = ""; stop: { // labeled block // count 10 rows 14 for ( int row = 1; row <= 10; row++ ) { // count 5 columns 17 for ( int column = 1; column <= 5 ; column++ ) { if ( row == 5 ) // if row is 5, 20 break stop; // jump to end of stop block output += "* "; } // end inner for output += "\n"; } // end outer for 29 Loop 10 times stop is the labeled block Exit to line 35 (next slide) Nested loop 5 times

23 BreakLabelTest. java 30 // following line is skipped 31 output += "\nLoops terminated normally"; } // end labeled block JOptionPane.showMessageDialog( null, output, 36 "Testing break with a label", 37 JOptionPane.INFORMATION_MESSAGE ); System.exit( 0 ); // terminate application } // end main } // end class BreakLabelTest

24 ContinueLabelTe st.java Line 11 Line 14 Line 17 Lines // 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 = ""; nextRow: // target label of continue statement // count 5 rows 14 for ( int row = 1; row <= 5; row++ ) { 15 output += "\n"; // count 10 columns per row 18 for ( int column = 1; column <= 10; column++ ) { // if column greater than row, start next row 21 if ( column > row ) 22 continue nextRow; // next iteration of labeled loop output += "* "; } // end inner for } // end outer for nextRow is the labeled blockLoop 5 timesNested loop 10 times continue to line 11 ( nextRow )

25 ContinueLabelTe st.java JOptionPane.showMessageDialog( null, output, 31 "Testing continue with a label", 32 JOptionPane.INFORMATION_MESSAGE ); System.exit( 0 ); // terminate application } // end main } // end class ContinueLabelTest

26 5.9 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)

27

28

29 LogicalOperator s.java Lines Lines // Fig. 5.19: LogicalOperators.java 2 // Logical operators. 3 import javax.swing.*; 4 5 public class LogicalOperators 6 7 public static void main( String args[] ) 8 { 9 // create JTextArea to display results 10 JTextArea outputArea = new JTextArea( 17, 20 ); // attach JTextArea to a JScrollPane so user can scroll results 13 JScrollPane scroller = new JScrollPane( outputArea ); // create truth table for && (conditional AND) operator 16 String output = "Logical AND (&&)" + 17 "\nfalse && false: " + ( false && false ) + 18 "\nfalse && true: " + ( false && true ) + 19 "\ntrue && false: " + ( true && false ) + 20 "\ntrue && true: " + ( true && true ); // create truth table for || (conditional OR) operator 23 output += "\n\nLogical OR (||)" + 24 "\nfalse || false: " + ( false || false ) + 25 "\nfalse || true: " + ( false || true ) + 26 "\ntrue || false: " + ( true || false ) + 27 "\ntrue || true: " + ( true || true ); 28 Conditional AND truth tableConditional OR truth table

30 LogicalOperator s.java Lines Lines Lines Lines // create truth table for & (boolean logical AND) operator 30 output += "\n\nBoolean logical AND (&)" + 31 "\nfalse & false: " + ( false & false ) + 32 "\nfalse & true: " + ( false & true ) + 33 "\ntrue & false: " + ( true & false ) + 34 "\ntrue & true: " + ( true & true ); // create truth table for | (boolean logical inclusive OR) operator 37 output += "\n\nBoolean logical inclusive OR (|)" + 38 "\nfalse | false: " + ( false | false ) + 39 "\nfalse | true: " + ( false | true ) + 40 "\ntrue | false: " + ( true | false ) + 41 "\ntrue | true: " + ( true | true ); // create truth table for ^ (boolean logical exclusive OR) operator 44 output += "\n\nBoolean logical exclusive OR (^)" + 45 "\nfalse ^ false: " + ( false ^ false ) + 46 "\nfalse ^ true: " + ( false ^ true ) + 47 "\ntrue ^ false: " + ( true ^ false ) + 48 "\ntrue ^ true: " + ( true ^ true ); // create truth table for ! (logical negation) operator 51 output += "\n\nLogical NOT (!)" + 52 "\n!false: " + ( !false ) + 53 "\n!true: " + ( !true ); outputArea.setText( output ); // place results in JTextArea 56 Logical NOT truth table Boolean logical exclusive OR truth table Boolean logical inclusive OR truth table Boolean logical AND truth table

31 LogicalOperator s.java 57 JOptionPane.showMessageDialog( null, scroller, 58 "Truth Tables", JOptionPane.INFORMATION_MESSAGE ); System.exit( 0 ); // terminate application } // end main } // end class LogicalOperators

32

33 5.10 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

34 Fig. 5.21Java’s single-entry/single-exit sequence, selection and repetition statements.

35 action state Fig. 5.23En basit akış diyagramı.

36 Fig. 5.24En basit akış diyagramına kural 2 ‘yi uygulayıcı yeni sıralı komutlar ekleniyor action state apply Rule 2 action state

37 Fig Basit akış diyagramına kural 3 yani kontrol ve tekrarlı yapıları akleyebilirz.

38 Fig. 5.26Hatalı akış diyagramı. action state


"Bölüm 5 – Kontrol İfadeleri : 2.Kısım İçerik 5.1 Giriş 5.2 Bir Kontrollü Döngü İfadesinde Olması Gerekenler 5.3 for Döngü Deyimleri 5.4 for Döngü Deyimi." indir ppt

Benzer bir sunumlar


Google Reklamları