Giriş
Kontrol yapıları, program akışını değiştirmek için
kullanılan yapılardır. Yapısal programlama dillerinde program işleyişi ilk
satırdan son satıra doğru ilerler ve bu işleyiş sırası, şartlı veya şartsız
olarak değerlendirilebilir. İşte; programın işleyiş yönün şartlı veya şartsız
olarak değerlendirilmesi işlemine dallanma (branching) denir. Dallanma
işlemlerini gerçekleştiren komutlara kontrol komutları denir.[1]
Java da 4 çeşit kontrol yapısı mevcuttur;
- 1. Karşılaştırma ifadeleri: if,if-else,switch-case
- 2. Döngü ifadeleri:while,do-while,for
- 3. dallanma ifadeleri:break,continue,label,return
- 4. istisna ifadeleri: try,catch,finally,throw [2]
1-if deyimi ve else blogu
Tüm dillerde olduğu gibi
if yapısının Java’daki kullanımı da son derce önemlidir.Bazen program
içerisinde izleyeceğimiz yol dallanmalardan oluşabilir. Bu dallanmalar haliyle
farklıdır.İşte bu farklı sonuçlara erişebilmek için if yapısı zorunlu
olmaktadır.[3]
Şekil 1 If deyimi yapısı
Örnek 1-Dışarıdan
girilen sayı 0 dan büyük ise girilen sayının karesini alan programı yazınız
Çözüm:
Algoritması:
1-Başla
2-Sayı gir(sayi)
3-Eğer sayi >0 ise kare=sayi^2
4-Yaz kare’yi
5-Dur
Java Programlama dilinde kodlaması:
import java.util.Scanner;
public class Egerr {
public static void main(String[] args) {
Scanner tara=new Scanner(System.in);
int sayi;
double kare;
System.out.println("Bir sayı giriniz");
sayi=tara.nextInt();
if (sayi>0){
kare=sayi*sayi;
}
System.out.println(kare);
}
}[1]
İf cümleciğini kodumuza uyguladığımızda sadece true durumlar için değerler üretebiliriz. Ancak
bazı şartlarda false durumlar için de değer üretmemiz gerekecektir. İf-else
deyimi burada devreye girmektedir.[2]
Şekil 2 Çok seçimli if yapısı
Örnek 2-Dışardan girilen
nota göre öğrencinin o dersten geçip geçmediğini ekranda gösteren programı
yazınız.
Çözüm:
Algoritması:
1-Başla
2-notunuzu giriniz (not)
3-Eğer notunuz 50 den büyük veya eşitse yaz “Geçtiniz”
Değilse Yaz ”Kaldınız”
4-Dur
Java Programlama dilinde kodlaması:
import java.util.Scanner;
public class not {
public static void main(String[] args) {
Scanner tara=new Scanner(System.in);
int not;
System.out.println("Notunuzu Giriniz");
not=tara.nextInt();
if(not>=50){
System.out.println("Geçtiniz");
}
else{
System.out.println("Kaldınız");
}}}
2-Switch Case Yapısı-Çok Seçimli Yapı
Verilen değişkenin değerlerine göre yapılacak farklı
işlemlerin seçimlerinde kullanılır. Tam sayıları karşılaştırarak doğru
koşulların elde edilmesini sağlar. Doble,Float gibi ondalıklı veri tipleri veri kayıplarına neden olma
ihtimali sebebiyle kullanılmaz. Bu yapıda char,byte ve long değişkenler java tarafından
int dönüştürülmektedir. Değişkenlerin hangi aralıkta olduğu (a<5,b<=6 v.b.) incelenemez. Değişkenlere kesin değer atanır. Java switch deyimi ile başlayan cümlelerde sıra ile tüm case bloklarını tarar. Uygun bir case işlemi bulunduğunda çalıştırılır. Her koşuldan sonra break deyimi kullanılmalıdır. Aksi halde sağlanan koşuldan sonraki tüm koşullar java tarafından doğruluğu kontrol edilmeksizin çalıştırılır.(2)
Şekil 3 Switch-Case deyimi yapısı
Örnek 3:100
lük sisteme göre girilen başarı notunu harfli sistemde gösteren programı
yazınız.
Kriter:Girilen not 90 ve üzeri ise AA,80-90 arası ise
BA,70-79 arası ise BB,60-69 arası ise CB,50-59 arası ise CC , 50 den aşağı ise
FF şeklinde gösterilecek.
Çözüm:
Algoritması:
1-Başla
2-Başarı notunu giriniz (not)
3-Eğer notunuz 90 ve üzerinde ise “AA”
4-Değilse Eğer Notunuz 80 ile 89 arası ise “BA” yaz
5-Değilse Eğer Notunuz 70 ile 79 arası ise “BB” yaz
6-Değilse Eğer Notunuz 60 ile 69 arası ise “CB” yaz
7-Değilse Eğer Notunuz 50 ile 59 arası ise “CC” yaz
8-Değilse Eğer Notunuz 50 den küçük ise “FF” yaz
9-Dur
Java programlama
dilinde kodlaması
import java.util.Scanner;
public class Basarinotu {
public static void main(String[] args) {
Scanner tara=new Scanner(System.in);
int not;
not=tara.nextInt();
switch(not/10){
case 10:
case 9:
System.out.println("AA");break;
case 8:
System.out.println("BA");break;
case 7:
System.out.println("BB");break;
case 6:
System.out.println("CB");break;
case 5:
System.out.println("CC");break;
default:
System.out.println("FF");break;
}
}
}(1)
3-For döngüsü
Döngüler gerçekten
diller arasında en çok ihtiyaç duyulan komutlardır. Bir kodun belirli bir kere
veya belirli bir şart gerçekleşene kadar işletilmesi gerekebilir. İşte bu tip
durumlarda çözüm sadece döngü komutlarıyla gerçekleştirilebilir.Örneğin 30
öğrencisi olan bir sınıfta öğrencilerin
notlarını öğrenmek için 30 satırlık bir kod gerektirirken bunu döngü
komutlarıyla tek satırda yapabilmekteyiz.(3)
For döngüsünde , blok içerisindeki kodların en az bir kere
işlediği unutulmamalıdır. Ayrıca for döngüsünde döngünün kaç kere
tekrarlanacağı bellidir ve bu değer adım değerini bir sayarsak, [bitiş
değeri]-[başlangıç değeri] kadardır.(3)
Şekil 4 For döngüsü deyimi yapısı
Örnek 4:
1’den 10’a kadar olan sayıları ekranda gösteren programı for döngüsü ile
gerçekleştiriniz.
Çözüm:
public class For {
public static void main(String[] args) {
for(int sayac=1;sayac<=10;sayac++){
System.out.println(sayac+"\t");
}
}
}(1)
4-While Dögüsü
İf cümleciğinde olduğu gibi koşul sağlandığında true
döndürmelidir. Önerme daima doğru olmalıdır. Kod yada kod blokları koşul
sağlandığı müddetçe tekrar tekrar çalıştırılır.(2)
Şekil 5 While döngüsü Yapısı
Örnek 5:
Rastgele seçilen iki sayının çarpımları tek olan iki sayıyı bulan java
programını yazınız.
Çözüm:
import java.util.Random;
public class donguler {
public static void main(String[] args) {
int sayi1=0,sayi2=0;
int carpim=0;
Random uret= new Random();
while(true){
sayi1=uret.nextInt();
sayi2=uret.nextInt();
carpim=sayi1*sayi2;
if(carpim%2!=0)break;
}
System.out.println("Dongü bitti..çarpım="+carpim);
}
}(3)
Do-while Döngüsü
Bu yapı diğerlerinden farklı olarak koşulu döngü sonunda
kontrol eder.Yani döngü tamamen kontrol edilene kadar kod bloğu en az bir kere
çalıştırılmış olur. Koşul sağlanıyor-true dönüyor ise kod bloğu tekrar
çalıştırılır.
Şekil 6 Do-While döngüsü yapısı
Örnek 6:
Dışarıdan girilen sayı sıfırdan farklı olduğu sürece o sayının karekökünü alan
programı yazınız.
Çözüm:
import java.util.Scanner;
public class Karekos {
public static void main(String[] args) {
Scanner tara=new Scanner(System.in);
int sayi;
double karekok;
System.out.println("Programdan çıkmak için 0 giriniz");
do{
System.out.println("Sayiyi Giriniz");
sayi=tara.nextInt();
karekok=Math.sqrt(sayi);
System.out.println(karekok);
}while(sayi!=0);
}
}(1)
break Deyimi
break deyimi etiketli(labeled) ve etiketsiz (unlabeled)
olmak üzere iki farklı şekilde kullanılabilir. Etiketsiz break deyimi,
switch/case yapılarında nasıl kullanıldığını görmüştük. Etiketsiz break ifadesi
ile koşul sağlandığında switch ifadesinin sonlanmasını sağlıyorduk. Break
ifadesini aynı şekilde while,do-while ve for döngülerinden çıkmak için de
kullanabiliriz.(1)
Etiketsiz break deyimi ile en içteki while,do-while,for
döngüleri sonlandırılırken, etiketli break deyimi etiket hangi döngünün başına
konulmuş ise o döngü sistemini sona erdirir.(1)
continue Deyimi
continue deyimi , döngü içerisinde o anki işlemin
atlanmasını (göz ardı edilmesi) ve bir sonraki işlemlerden devam edilmesini
sağlayan bir komuttur. Continue
deyimide break deyimi gibi
while,do-while ve for döngülerinde etiketli ve etiketsiz olarak kullanılabilir.
Etiketsiz continue deyimi en içteki döngü içerisinde etiketsiz olarak
kullanılabilir , etiketli continue deyimi ise başına konulduğu döngü yapısını
etkiler.(1)
return Deyimi
Bir fonksiyon veya
metottan değer geri döndürür. Ayrıca programdan çıkış için de (void yöntemler
için) kullanılabilir.(1)
KAYNAKLAR
1. Çobanoğlu ,B.(2008). Java ile programlama ve veri yapıları. 1.Baskı,Pusula
yayıncılık
2. AKALIN,A. (2011).Kim korkar Java’dan. 1.Baskı, Pusula Yayıncılık
3. GERİŞ,K.(2008).Sun Java Eclips.,Palme Yayıncılık
4. Peköz ,N.(2004).Java,1.Baskı,Pusula Yayıncılık
Hiç yorum yok:
Yorum Gönder