The European Union’s “Making the Labour Market more Inclusive III” programme For “North Cyprus” Upgrading Internet Technology skills of Information and Communication Technologies (ICT) Professionals Module 2:Server Side Internet Programming Modül 2: Sunucu Tarafı Internet Programlaması Laboratuar Notları This project is funded by The European Union A project implemented by CyberSoft Bilişim Teknolojileri Ltd. İçerik Bölüm 3: Kontrol Deyimleri ve Döngüler Örnek 1: If Kontrol deyiminin kullanılışı..……………………………………..……………………………..….2 Örnek 2: while döngüsünün kullanılışı..…….…………………………………..………………………………..3 Örnek 3: for döngüsünün kullanılışı…..…….…………………………………..………………………………..4 Örnek 4: continue anahtar sözcüğünün kullanılışı ……………………………..………………………………..6 Çalışma 1: Credit……………………………….………………………………………………………………....6 Çalışma 2: Palindrome (Tersinden de aynı şekilde okunabilen sayılar)………………………………………….9 Çalışma 3: Largest Number (En Büyük Sayıyı Bulma)………………...……………………..………………….11 Çalışma 4: Triangles (Üçgen motifi yaratma)..……………...………………………………………..…………..13 Çalışma 5: Sales…………………………………………………………………………………………...……....15 1 Kontrol Deyimleri ve Döngüler Program yazarken, yazdıgımız kodların yukarıdan asagıya dogru sırasıyla çalıstırıldıgını biliyoruz. Ancak bazen bu kodların bu sırada değil de belirli şartlara bağlı olarak birkaç satırın atlanıp ileriden devam edilmesi ya da aynı satırların birden fazla sayıda çalıştırılması gibi isteklerimiz olabilir. İste bunun için kullanacağımız bazı deyimler ve döngüler vardır. Bu deyim ve döngüler sayesinde normalde her satırdan bir defa geçen ve yukarıdan başlayarak aşağı satırlara dogru ilerleyen program akışını, bazı satırları belli durumlarda okumadan, ya da bazı satırları birden fazla defa okuyacak şekilde yönlendirmemiz mümkün hale gelir. If Kontrol Deyimi: If deyimi belli bir şart sağlanması durumunda program akışını kendi faliyet alanı içerisine yönlendirir. Kendi faliyet alanının en son satırına kadar kodları çalıştırır ve daha sonra da program akışı if deyiminin faliyet alanının bittiği yerden devam eder. satır1 satır2 true if (ifade) { false satır3 satır4 } satır5 Şekil1: If Kontrol deyiminin yapısı Örnek 1: If Kontrol deyiminin kullanılışı 2 Bu örnekte de görüldüğü gibi bir şartın saglanması demek, aslında if deyiminin kontrol parantezleri içerisindeki ifadenin true olması demektir. Aynı sekilde bu sartın saglanmaması ise ifadenin false degerini üretmesi anlamına gelir. Yukarıdaki örnekte eğer number% 2 ifadesi eğer false olursa ekrana “ is odd” mesajı gelecektir. Ancak true olursa “ is even” mesajını alırsınız. while Döngüsü: Simdi de kullanıcımız bizden program çalıstığında girdiği değer limitine kadar olan sayıların tek mi çift mi olduğunu test etmek istiyor. Ne zaman ki girilen değer limitden büyük olur, o zaman program sonlansın diyor. Bu durumda sayı testi bir döngü içerisine sokulmalıdır. Bu döngünün en basında önce sayının xlimit den küçük olup olmadığına bakılmalı sonra ya döngü tekrar dönmeli ya da sonlandırılmalıdır. Bunun için en uygun döngü while döngüsü olacaktır. while, eğer içerisindeki ifade true ise program akışını kendi içine yönlendirir. Program while faliyet alanının en sonuna geldiğinde tekrar while döngüsünün ilk satırına döner ve ifadeyi yine kontrol eder. Bu işlem, while içerisindeki ifade false olana kadar devam eder. satır1 satır2 true if (ifade) { false satır3 satır4 } satır5 Şekil2: while döngüsünün yapısı . Örnek 2: while döngüsünün kullanılışı 3 for Döngüsü: Şu ana kadar bir koşul sağlandığı sürece otomatik olarak döngüye girilmesini while deyimi ile yapabileceğimizi gördük. Ancak bu döngü koşul sağlandığı sürece, belli bir tekrar sayısı kadar değil her zaman devam ediyordu. Koşul sağlansa bile belirli bir tekrar sayısı da belirlemek istiyorsak o zaman for döngüsünü kullanmak gerekir. for döngüsü söyle çalısmaktadır: for( <ilk değer> ; <koşul> ; <ifade> ) { ... } Şekil3: for döngüsünün yapısı Buna göre ilk değer ile başlayan döngü ile program for bloğuna girdikten sonra bloğun sonuna geldiğinde koşulun sağlanıp sağlanmadığını kontrol edecek ve koşul sağlanıyorsa ifade’yi gerçekleyip tekrar döngüye girecektir. Örneğin, / /ForDongusu.java public class ForDongusu { public static void main(String arg[]){ for(int i = 0; i < 10; i++) { System.out.println("i nin değeri: ",i); } } } Örnek 3: for döngüsünün kullanılışı Bu program çalıstıgında ekrana 10 satır boyunca i nin degeri: 0 i nin degeri: 1 ... i nin degeri: 9 şeklinde yazacaktır. Program akışı her döngüye girişinde i’nin değeri ekrana yazılmakta ve blok sonunda i++ ifadesinden dolayı bu değer bir artırılmakta ve koşulun sağlanıp sağlanmadığına bakılmaktadır. switch Deyimi: switch deyimi kullanımı da, birden fazla else if kullanımına alternatiftir. Mesela yazdığınız programda kullanıcıdan bir giriş isteyebilirsiniz. Kullanıcının gireceği bu değer 4 tane değerden birtanesi olabilir ve siz olası her değer için bir işlem yapmak istiyor olabilirsiniz. Bunun için 4 if(değer 1) { } else if(değer 2) { } ... else { } Şekil4: else-if döngüsünün yapısı yapısını kullanabilirsiniz. Ancak böyle durumlarda switch daha iyi bir alternative olacaktır. switch deyimi söyle çalısmaktadır: switch( <değişken> ) { case değer1: ifade ya da islemler; break; case değer2: ifade ya da islemler; break; ... ... case değer n: ifade ya da işlemler; break; default: ifade ya da işlemler; break; } Şekil5: Switch deyiminin yapısı Bu yapıya göre program akışı, değişken içindeki değere göre case anahtar sözcüğü ile belirlenmiş uygun satıra atlar. O satırdaki ifade ya da işlemler gerçekleştirildikten sonra switch deyiminden çıkılır. Aşağıdaki örnek programımızda kullanıcıya bir menü sunalım ve bu menüden bir seçenegi seçmesini isteyelim. Bu seçim neticesinde de seçime uygun bir mesajın ekrana gelmesini saglayalım. Örneğimizde ilk basta yaratılan seçim_flag adındaki boolean değişken ilk değer olarak true olduğu için, program akışının ilk seferde while döngüsüne gireceğini garanti etmiş oluyoruz. Eger kullanıcı listede olmayan bir seçim girecek olursa, secim_flag değiskeni tekrar true değerini alacak ve kullanıcıdan tekrar bir giriş yapması istenecektir. Kullanıcı listede olan bir giriş yaparsa program sonlanacaktır. Bu durumda listede olmayan girişler girildigi sürece program çalışmaya devam edecektir. continue Anahtar Sözcüğü: Herhangi bir döngü içerisine girildiğinde, daha döngü bloğunun sonuna gelinmeden o andaki adım için işlemleri sonlandırıp bir sonraki döngü adımına hemen geçilmek isteniyorsa continue anahtar sözcüğünü kullanmak gerekir. Mesela yazdıgımız programda 1'den 10'a kadar olan sayılar toplamak istiyoruz ama bu toplam içerisine 3 ve 3’ün katlarını eklemek istemiyoruz. Bunun için bir for döngüsü kullanmak gerekir. Ancak bu döngüyü 3 ve 3'ün katlarına gelindiğinde durdurup bir sonraki değerle döngüye devam etmek gerekmektedir: 5 //Toplama.java public class Toplama { public static void main(String arg[]){ int toplam = 0; for(int i = 0; i < 10; i++) { if(i % 3 == 0) { continue; } toplam += i; } System.out.println("Toplam: " , toplam); System.exit(0); } } Örnek 4: continue anahtar sözcüğünün kullanılışı Bu örnekte % operatörünü kullandık. Bu operatör soldaki sayının sağdaki sayıya bölümünden kalan değeri üretir.Yani i sayısı o anda hangi değere sahipse, bu değerin 3'e bölümünden kalan sayının 0'a eşit olup olmadığı kontrol edilmektedir. Eğer bu kalan sayı 0'a eşit ise demek ki sayımız 3 ya da 3'ün bir katıdır. Bu yüzden if parantezi içerisindeki == kontrolü sağlandığından dolayı true değeri üretilecek ve dolayısı ile if bloğu içerisine girilecektir. If bloğu içerisinde continue anahtar sözcügü sayesinde o andaki for adımı sonlanacak ve bir sonraki i değeri ile for bloğunun en başına dönülecektir. Çalışma 1. Credit Aşağıda verilen program şablonu hatasız çalışan bir Java programıdır. Ancak programdaki bir veya birden fazla anahtar satırları açıklama satırlarıyla değiştirilmiştir. Problem tanımını okuyun ve örnek sonucu inceleyin; daha sonra da şablon kod üzerinde çalışın. Problem çözme ipuçları’nı kullanarak /* */ gösterilen açıklama satırlarını Java koduyla değiştirin. Programınızı derleyin ve çalıştırın. Bulduğunuz sonucu örnek sonuçla karşılaştırın. 1.1 Credit Çalışmasının Amacı Bu çalışmada şu konular incelenecektir: pseudocode (sözde program) yazılması kontrol deyimlerinin kullanılması 1.2 Credit Çalışmasının Problem Tanımı Herhangi bir mağaza müşterilerinin kredi kartı hesabınının limitini aşıp aşmadığını control eden bir Java uygulaması yazınız. Her müşteri için şu bilgiler mevcuttur: hesap numarası (account) Ayın başındaki bakiyesi (oldBalance) Bu ayki toplam harcaması (charges) Müşteri hesabına aktarılan toplam kredi miktarı (credits) Kredi limiti (creditLimit) 6 Program yukarıda belirtilen değerleri giriş bilgisi (input) olarak isteyip yeni bakiyeyi (newBalance) hesaplamalıdır. (newBalance = oldBalance + charges – credits). Daha sonra newBalance ekrana yazılıp newBalance’ın credits limitini aşıp aşmadığı test edilmelidir. Eğer credits limiti aşılmışsa program "Credit limit exceeded" mesajını ekrana yazmalıdır. 1.3 Credit Çalışmasının Örnek Program Çıktısı 1.4 Credit Çalışmasının Program Şablonu //Lab : Credit.java //Program monitors accounts import java.util.Scanner public class Credit { // calculates the balance on several credit accounts public void calculateBalance() { Scanner input = new Scanner( System.in ); int account; // account number int oldBalance; // starting balance int charges; // total charges int credits; // total credits int creditLimit; // allowed credit limit int newBalance; // new balance System.out.print( "Enter Account Number (or - to quit): " ); /* programa bir sayıyı input olarak alıp onu account içerisinde saklayan kodu yazınız */ /* account numarası -1 olmadığı sürece dönecek olana bir while loop yazınız*/ /* diğer müşteri bilgilerini inpu olarak girileceği kodları yazınız */ 7 /* newBalance hesaplayacak kodu yazınız */ /* newBalance değerinin credits den büyük olup olmadığını test eden if komutunu yazınız ve uygun bilgiyi ekrana yazdırınz. */ /* new account number (yeni hesap numarasını input olarak alan kodu yazınız ve while loop bitiriniz.*/ }// end method calculateBalance }// end class Credit Şekil 1.1 Credit.java // Lab 1: CreditTest.java // Test application for class Credit public class CreditTest { public static void main(String args[]) { Credit application = new Credit(); application.calculateBalance(); } // end main } // end class CreditTest Şekil 1.2 CreditTest.java 1.5 Credit Çalışması için Problem Çözme İpuçları 1. Beş tane input değeri gereklidir. Ama account numarası uygun bir numara olup olmadığı bakılması için while loop’undan once girilmelidir. Dolayısıyla toplamda altı tane input girişi olmalıdır. Beş tanesi while loop içinde, bir tanesi while loop’dan önce olmalıdır. 2. newBalance hesaplarken (newBalance = oldBalance + charges – credits) formülünü kullanınız. 3. newBalance’ın creditLimit’ini aşıp aşmadığını control etmek için if komutunu kullanınız. Eğer aşmışşsa limitin aşıldığını belirten mesajı ekrana yazdırınız. 4. Modify the program to use counter-controlled repetition to process 10 accounts. 5. Programı counter kontrolu kullanarak10 kere çalışacak şekilde değiştiriniz. 6. Programı counter kontrolu kullanarak kullanıcının istediği miktar kadar çalışacak şekilde değiştiriniz. Bunun için number isminde yeni bir değişken tanımlayınız ve kullanıcının bu değeri girmesini isteyiniz. 8 Çalışma 2: Palindrome (Tersinden de aynı şekilde okunabilen sayılar) Aşağıda verilen GradeBook ismindeki program şablonu hatasız çalışan bir Java programıdır. Ancak programdaki bir veya birden fazla anahtar satırları açıklama satırlarıyla değiştirilmiştir. Problem tanımını okuyun ve örnek sonucu inceleyin; daha sonra da şablon kod üzerinde çalışın. Problem çözme ipuçları’nı kullanarak /* */ gösterilen açıklama satırlarını Java koduyla değiştirin. Programınızı derleyin ve çalıştırın. Bulduğunuz sonucu örnek program çıktısıyla karşılaştırın. 2.1 Palidrome Çalışmasının Amacı Bu çalışmanın amacı aşağıda belirtilen Java programlama konseptlerinin öğrenilmesini sağlamaktır. Bu çalışmada şu konular incelenecektir: kontrol deyimlerinin kullanılması if-else control deyimlerinin kullanılması sentinel-controlled döngüler 2.2 Palindrome Çalışmasının Problem Tanımı Palindrom tersten okunduğu zaman da aynı olan cümleler ve sayılar grubudur. 5 basamaklı palindrom sayı örnekleri şunlardır: 12321, 55555, 45554. 5 basamaklı sayıyı input alıp, onun bir palindrome olup olmadığını test eden bir uygulama kodu yazınız. Eğer girilen sayı beş basamaklı değilse, ekrana bir hata mesajı yazdırınız ve kullanıcıdan yeni bir input girmesini isteyiniz. 2.3 Palindrome Çalışmasının Örnek Program Çıktısı 2.4 Palindrome Çalışmasının Program Şablonu // Lab 2: Palindrome.java // palindrome olup olmadigini test eden program import java.util.Scanner; public class Palindrome { // 5 basamaklı sayının palindrome olup olmadığını test eder. public void checkPalindrome() { Scanner input = new Scanner( System.in ); int number; // kullanıcının girdiği input değeri 9 int digit1; // 1. sayı int digit2; // 2. sayı int digit4; // 4.sayı int digit5; // 5. sayı int digits; // girilen input’daki sayı miktarı number = 0; digits = 0; /* 5 basamaklı sayı input girmek için kullanılan kodu yazınız. Eğer girilen değer 5 basamaklı değilse hata mesajı yazdırınız. Doğru bir input devam edene kadar döngüyü devam ettiriniz. */ /* Beş basamaklı sayıyı 5 adet sayıya bölen kodu yazınız. /* 1. ve 5. sayıların ve de 2. ve 4. sayıların aynı olup olmadığını kontrol eden kodu yazınız. Girilen sayının palındromolup olmadığını ekrana yazdırınız.*/ } // end method checkPalindrome } // end class Palindrome Şekil 2.1 Palindrome.java // Lab 2: PalindromeTest.java // Test application for class Palindrome public class PalindromeTest { public static void main( String args[] ) { Palindrome application = new Palindrome(); application.checkPalindrome(); } // end main } // end class PalindromeTest Şekil 2.2 PalindromeTest.java 2.5 Palindrome Çalışması için Problem Çözme İpuçları 1. Girilen input sayısında kaç tane sayı olduğunu hesaplayınız ve bulduğunuz değeri digit isimli değişkene atayınız. Girilen input’da 5 tane sayı olup olmadığını test etmek için while loop kullanınız. Bunun için digit değerinin beşe eşit olup olmadığını test ediniz. Eğer değilse, kullanıcıdan yeni bir ınput girmesini isteyiniz. Doğru input girilene kadar while loop dönmelidir. 2. 5 sayıyı elde edebilmek için Bölme (division) ve kalan (remaınder) hesaplamalarını kullanınız. 5 basamaklı bir sayının palidrom olabilmesi için (1. Ve 5. sayıların ) ve (2. Ve 4. sayıların) aynı olması gereklidir. 3. Programı 7 basamaklı sayının palindrome olup olmadığını test edecek şekilde değiştiriniz. 10 Çalışma 3. Largest Number (En Büyük Sayıyı Bulma) 3.1 Largest Number Çalışmasının Amacı Bu çalışmanın amacı aşağıda belirtilen Java programlama konseptlerinin öğrenilmesini sağlamaktır. while döngüsünün kullanılışı counter kontrollu tekrarların kullanılması if kontrol deyimlerinin kullanılması 3.2 Largest Number Çalışmasının Problem Tanımı En büyük sayıyı bulma sıkla kullanılar bir uygulamadır. Mesela ayın en çok satış yapan elemanını belirlerken her eleman sattığı miktarı input olarak girer. En çok mal satan satış elemanı ayın elemanı seçilir. 10 tane sayıyı input alıp, bu sayıların içindeki en büyük sayıyı bulup ekrana yazdıran bir Java uygulaması yazınız. Programda en az 3 tane değişken kullanılmalıdır: counter: kaç tane sayının input olarak girildiğini ve ne zaman 10 tane olduğunu bulmak için kullanılacak değişken number: kullanıcı tarafından en son girilen input largest: şimdiye kadarbulunan en büyük değer 3.3 Largest Number Çalışmasının Örnek Program Çıktısı 3.4 Largest Number Çalışmasının Program Şablonu // Lab 3: Largest.java // Bu program on sayıdan en büyüğünü bulup ekrana vazdırır import java.util.Scanner; public class Largest { // determine the largest of 10 numbers public void determineLargest() { Scanner input = new Scanner( System.in ); int largest; // en büyük sayı int number; // kullanıcı input 11 int counter; // girilen sayı miktarı /* birinci sayıyı input olarak alıp largest değişkenine atayan kodu yazınız */ /* counter değerini 1’e eşitleyiniz*/ /* 10 tane sayı girilene kadar devam edilecek loop yazınız*/ /* kullanıcıdan bir sayı girmesini isteyen ve bu sayıyı okuyan kodu yazınız */ /* girilen değerin en son bulunan largest değerinden büyül olup olmadığını test edip, eğer büyükse girilen değeri largest ile değiştiren kodu yazınız */ /* number değerini artıran kodu yazdırınız.*/ System.out.printf( "Largest number is %d\n", largest ); } // end method determineLargest } // end class Largest Şekil 3.1 Largest.java // Lab 3: LargestTest.java // Largest sınıfı için Test uygulaması public class LargestTest { public static void main( String args[] ) { Largest application = new Largest(); application.determineLargest(); } // end main } // end class LargestTest Şekil 3.2 LargestTest.java 3.5 Largest_Number Çalışması için Problem Çözme İpuçları 1. Programın başında count değerini 1’e eşitleyiniz. 2. Girilen değerin largest değerinden büyük olup olmadığını test eden if control deyımı kullanınız. 3. Programı en büyük iki sayıyı bulabilecek şekilde değiştiriniz. 12 Çalışma 4. Triangles (Üçgen motifi yaratma) 4.1 Triangles Çalışmasının Amacı Bu çalışmanın amacı aşağıda belirtilen Java programlama konseptlerinin öğrenilmesini sağlamaktır. içiçe geçmiş for döngülerinin kullanılması counter kontrollu tekrarların kullanılması 4.2 Triangles Çalışmasının Problem Tanımı for döngüsünü kullanarak aşağıdaki motif şeklini oluşturacak bir Java uygulaması yazınız. Herbir (*)’ı ayrı bir System.out.print( "*" ); komutu kullanarak yanyana ekrana yazınız. Bir alt satıra geçmek için ise System.out.println() komutunu kullanınız. İki motif arasındaki boşluğu yaratmak içinse System.out.print( " " ); komutunu kullanınız. Bu komutlar dışında başka hiçbir komut kullanılmamalıdır. 4.3 Triangles Çalışmasının Örnek Program Çıktısı 13 4.4 Triangles Çalışmasının Program Şablonu // Lab 1: Triangles.java // Program prints four triangles, one below the other public class Triangles { // 4 tane üçgen çizer public void drawTriangles() { int row; // the row position int column; // the column position int space; // number of spaces to print // 1. üçgen /* 1. Üçgeni çizecek kodu yazınız. İçiçe geçmis for döngüleri kullanınız. Dıştaki döngü “*”’ın hangi satırda yazılacağını control etmelidir. İçteki for döngüsü ise her seferinde bir “*” ekrana yazdırmalıdır. */ // 2. üçgen /* 1. Üçgeni yaparken kullandığınız teknikleri kullarak 2. üçgeni oluşturunuz */ // 3. üçgen /*3. Üçgeni çizecek kodu yazınız. Dıştaki döngü iki ayrı for döngüsü içermelidir. İçteki for döngünden biri boşlukları diğeri ise “*”’ı ekrana yazmalıdır.*/ // 4. üçgen /* 3. üçgeni yaparken kullandığınız teknikleri kullarak 4. üçgeni oluşturunuz */ } // drawTriangles metodunun sonu } // Triangles sınıfının sonu Şekil 4.1 Triangles.java // Lab 1: TrianglesTest.java // Triangles sınıfı Test uygulaması public class TrianglesTest { public static void main( String args[] ) { Triangles application = new Triangles(); application.drawTriangles(); } // main sonu } // TrianglesTest sınıfının sonu Şekil 4.2 TrianglesTest.java 14 4.5 Triangles Çalışması için Problem Çözme İpuçları 1. Birinci üçgeni oluştururken içiçe geçmiş iki for döngüsü kullanınız. Dıştaki for döngüsü satır sayısını, içteki for döngüsü ise sütun sayısını saymalaıdır. İçteki döngü 1’den o andaki satır numarasına kadar saymalıdır. 2. İkinci üçgeni oluştururken içiçe geçmiş iki for döngüsü kullanınız. Dıştaki for döngüsü 10’dan 1’e kadar geri saymalıdır. İçteki döngü ise birinci üçgenin içteki döngüsüyle aynı olmalıdır. 3. Son iki üçgen motifi ise her satırın başında uygun sayıda boşluk bırakılarak çizilmelidir. 4. Üçüncü ve dördüncü üçgenler için iki ayrı içiçe geçmiş for döngüsü kullanılmalıdır. İçteki for döngünden biri boşlukları diğeri ise “*”’ı ekrana yazmalıdır. Çalışma 5. Sales 5.1 Sales Çalışmasının Amacı Bu çalışmanın amacı aşağıda belirtilen Java programlama konseptlerinin öğrenilmesini sağlamaktır. switch komutunun kullanılması 5.2 Triangles Çalışmasının Problem Tanımı İnternet üzerinden satış yapan bir firma beş çeşit ürün satmaktadır. Bu ürünlerin fiyatları şu şekildedir: product 1, $2.98 product 2, $4.50; product 3, $9.98 product 4, $4.49 product 5, $6.87 Ürün kodu (product_number) ve satılan miktar (quantity sold) bilgileri dizisini ekrandan alan bir Java uygulaması yazınız. Her bir ürünün satış fiyatını belirlemek için switch komutunu kullanınız. Satılan bütün ürünlerin toplam değerini hesaplayıp ekrana yazdırınız. Bitiş simgesi kontrollü döngü kullanarak programın ne zaman sona ereceğini belirleyiniz ve sonucu ekrana yazınız. 5.3 Sales Çalışmasının Örnek Program Çıktısı 15 5.4 Sales Çalışmasının Program Şablonu // Lab 2: Sales.java // program girilen inputa göre toplam satışı hesaplar // import java.util.Scanner; public class Sales { // 5 ürünün satışını hesaplar public void calculateSales() { Scanner input = new Scanner( System.in ); double product1 = 0; // birinci üründen satılan miktar double product2 = 0; // ikinci üründen satılan miktar double product3 = 0; // üçüncü üründen satılan miktar double product4 = 0; // dördüncü üründen satılan miktar double product5 = 0; // beşinci üründen satılan miktar /* kullanıcıya almak istediği ürün numarasını sorunuz. */ /* bitiş simgesi girilene kadar devam eden while dögüsünü yazınız */ /* kullanıcın girdiği ürün kodunun 1-5 arasında olup olmadığını kontrol ediniz */ /* Eğer girilen ürün kodu 1-5 arasındaysa kullanıcıya istediği miktarı (quantity sold) sorununuz */ /* Girilen ürünün toplamını belirlemek için kullanılan switch komutunu yazınız.*/ /* Eğer girilen ürün kodu 1-5 arasında değilse, 0 olup olmadığını test ediniz */ /* Yanlış girilmiş ürün kodu için ekrana mesaj yazınız */ /* Kullanıcıya başka bir ürün kodu sorunuz. */ /* while döngüsü sonu */ System.out.println(); System.out.printf( "Product 1: $%.2f\n", product1 ); /* her bir ürünün kalan ürün miktarını alt alta ekrana yazdırınız */ } // calculateSales metod sonu } // Sales sınıfının sonu Şekil 5.1 Sales.java 16 // Lab 2: SalesTest.java // Test application for class Sales public class SalesTest { public static void main( String args[] ) { Sales application = new Sales(); application.calculateSales(); } // end main } // end class SalesTest Şekil 5.2 SalesTest.java 5.5 Sales Çalışması için Problem Çözme İpuçları 1. while dögüsünden önce kullanıcıdan ilk ürün kodunu girmesini isteyiniz. 2. döngüyü bitirmek için bitiş simgesi kullanınız. Bitis simgesi olarak ürün kodu “0” girilmelidir. 3. Eğer girilen ürün kodu doğruysa, döngü içerisinde kullanıcıya bu üründen kaç adet istediğini sorunuz. Daha sonra switch komutunu kullanarak gerekli hesaplamaları yapınız. 4. switch komutu beş tane case içermelidir. Bu case’lerin içerisinde kullanıcın girdiği miktara uygun olacak şekilde toplam hesaplanmalıdır. 17