ile Nesne Yönelimli Programlama
05 – Döngüler (while, do while)
Beykent Üniversitesi
Bilgisayar Programcılığı Öğr. Gör. Oğuzhan TAŞ
oguzhantas@beykent.edu.tr
While Döngüsü
Java ile Nesne Yönelimli Programlama Ders Notları-Oğuzhan TAŞ Beykent Üniversitesi 2
While döngüsünde belirtilen şart gerçekleştiği sürece dönüyordu. Aşağıdaki kodlarda while(true) veya while(1==1) ile şartın devamlı doğru olmasını
sağlayıp, sonsuza kadar dönmesini sağlıyoruz.
while(true){
//bu kısım döngü kadar işletilecek
}
while(1=1){
//bu kısım döngü kadar işletilecek
}
While Döngüsü
0’dan 5’e kadar sayıları while döngüsü ile yazdırınız.
int i=0;
while(i<=5) {
System.out.println(i);
i++;
}
Döngüler
Java ile Nesne Yönelimli Programlama Ders Notları-Oğuzhan TAŞ Beykent Üniversitesi 4
Aşağıdaki işlemi while döngüsü ile yapınız.
for(int i=1;i<=10;i++) {
if(i==5) break;
System.out.println(i);
}
While Döngüsü-break
Burada yine while(true) ile sonsuz döngümüzü açıyoruz. a değerini döngü içinde sürekli 1
artırıyoruz ve artımdan hemen sonra ekrana yazdırıyoruz. İf (a==10) ile a değeri 10’a eşitse
break komutunu vererek döngümüzü kesiyoruz.
While Döngüsü
Java ile Nesne Yönelimli Programlama Ders Notları-Oğuzhan TAŞ Beykent Üniversitesi 6
1’den 100’e kadar olan sayıları while ile toplayınız.
int i=0,toplam=0;
while(i<=100) { toplam+=i;
i++;
}
System.out.println("Sonuç:"+toplam)
;
While Döngüsü
Peki, 1’den 100’e kadar olan sayılar içinde hem 3’e hem de 5’e bölünen sayıların toplamını bulunuz.
int i=1, toplam=0;
while(i<=100) {
if(i%5==0 && i%3==0) {
System.out.println(i);
toplam+=i;
}
i++;
}//while
System.out.println("Toplam:"+toplam);
While ile Sonsuz Döngüsü
Java ile Nesne Yönelimli Programlama Ders Notları-Oğuzhan TAŞ Beykent Üniversitesi 8
0’dan sonsuza kadar tüm sayıları ekrana yazdıralım
int i=0;
while(true) {
System.out.println(i);
i++;
}
While ile Sonsuz Döngüsü
Ekrana takım renklerini sonsuza kadar yazdıralım.
int i=0;
while(true) { if(i%2==0)
System.out.println("Sarı");
else
System.out.println("Larcivert");
i++;
//if(i==100) break;
}
Siz yapın!
Java ile Nesne Yönelimli Programlama Ders Notları-Oğuzhan TAŞ Beykent Üniversitesi 10
Bir sınıfta kaç öğrenci olduğu bilinmiyor, klavyeden sürekli öğrenci notları girilsin, sadece -1 değeri girilince döngüden çıkılıp, kaç öğrenci olduğu ve ortalama not hesaplansın.
int i=0; double n, ortalama=0, toplam=0;
while(true) {
System.out.print((i+1)+". öğrenci notu:");
n=giris.nextDouble();
if(n==-1) break;
else {
toplam+=n;
i++;
} }
System.out.println("Öğrenci sayısı:"+i);
ortalama=toplam/i;
System.out.println("Ortalama:"+ortalama);
Do-While Döngüsü
Do-While döngüsü de while döngüsü gibidir, tek farkı en az 1 defa işletilmesidir.
do{
//bu kısım döngü kadar işletilecek
}while(true);
Döngüler-Karşılaştırma
Java ile Nesne Yönelimli Programlama Ders Notları-Oğuzhan TAŞ Beykent Üniversitesi 12
ASCII karakter tablosuna göre A’dan Z’ye tüm harfleri yazdıralım, 65’den başlayıp 90’a kadar gitmektedir.
char ch='A';
while(ch<='Z') {
System.out.println(ch);
ch++;
}
char ch;
for(ch='A'; ch<='Z';ch++){
System.out.println(ch);
}
char ch='A';
do{
System.out.println(ch);
ch++;
}while(ch<='Z');
Döngüler
Bir şirketin başlangıç sermayes 1.000 TL olsun. Şirket her yıl %10 büyürse 20 yıl sonra sermayesi ne kadar olur?
#örneğin başlangıç sermayesi 1000 TL olsun.
# 1. yıl %10 büyürse 1000'in %10'u 100 TL sermaye=1100 TL
# 2. yıl %10 büyürse 1100'ün %10'u 110 TL sermaye=1210 TL
# ...
double sermaye=1000;
int i=1;
while(i<=20) {
sermaye+= sermaye*10/100;
System.out.println(i+".yıl sonu sermaye="+sermaye);
i++;
}
Döngüler
Java ile Nesne Yönelimli Programlama Ders Notları-Oğuzhan TAŞ Beykent Üniversitesi 14
Bir ağacın fidan iken boyu 1 metredir, ağaç her yıl %20 büyüdüğüne göre 10 yılda kaç metre olur?
Başlangıç boyu 1 m olsun.
1.YIL = 1+1*20/100 = 1+ 0.2= 1.2 m
2.YIL = 1.2 + 1.2*20/100 = 1.2+ 0.24=1.44 m
…
10. YIL sonunda?
Döngüler
Bir ağacın fidan iken boyu 1 metredir, ağaç her yıl %20 büyüdüğüne göre 10 yılda kaç metre olur?
double boy=1;
int i=1;
while(i<=10) {
boy+= boy*20/100;
System.out.println(i+".yıl sonunda boy="+boy);
i++;
}
Döngüler
Java ile Nesne Yönelimli Programlama Ders Notları-Oğuzhan TAŞ Beykent Üniversitesi 16
Klavyeden girilen değerin faktöriyelini for döngüsü ile hesaplayınız.
2! = 2.1 = 2
3! = 3.2.1 = 6
4! = 4.3.2.1 = 24
5! = 5.4.3.2.1 = 120
Döngüler
Klavyeden girilen değerin faktöriyelin while döngüsü ile hesaplayınız. 0! Değeri
de 1’e eşittir, bunu da bir if şartı ile kontrol ediniz.
Döngüler
Java ile Nesne Yönelimli Programlama Ders Notları-Oğuzhan TAŞ Beykent Üniversitesi
18
Bir sayının asal sayı olup olmadığını kontrol ediniz.
Bir sayının asal olabilmesi için kendisine ve 1’den başka hiçbir sayıya bölünmemesi gerekir.
Bir döngü içinde bölünebilme
kontrolünü yapıp, eğer sayı asal ise asal
boolean asal=true;
int i;
System.out.print("Bir sayı giriniz:");
int sayi=giris.nextInt();
for(i=2;i<sayi;i++){
if(sayi%i==0){
asal=false;
break;
} }
if(asal){
System.out.print("Asal");
}else{
System.out.print("Asal değil");
}
}
}
Siz Yapın
Klavyeden girilen iki sayı arasındaki asal sayıları bulunuz.
İç içe Döngüler
Java ile Nesne Yönelimli Programlama Ders Notları-Oğuzhan TAŞ Beykent Üniversitesi 20
Çarpım Tablosu Örneği
İç içe Döngüler
public class forIcice1 {
public static void main(String[] args) { for (int i = 1; i <= 5; i++)
{
for (int j = 4;j>=1;j--) {
System.out.print("*");
}
System.out.println();
} } }
Aşağıdaki kod ile ne yapılmaktadır?
İç içe Döngüler
Yandaki şekli döngüler ile yapınız.
Java ile Nesne Yönelimli Programlama Ders Notları-Oğuzhan TAŞ Beykent Üniversitesi 22
Siz yapın!
23
Siz yapın!
1’den başlayıp 200’e kadar sayıları yazdırınız.
1’den başlayıp 200’e kadar 3’er 3’er yazdırınız
100’den 120’e kadar 10’ar 10’ar yazdırınız.
20’den 5’e 3’er azaltarak yazdırınız.
400-500 arası hem 2’ye hem 3’e bölünenleri yazdırınız.
ASCII karakter tablosuna göre küçük harfleri ekrana yazdırınız
ASCII karakter tablosuna göre rakamları ekrana yazdırınız.
Filmler=[‘Eşkıya’,Kabadayı’, ‘Züğürt Ağa’, ‘Av Mevsimi’,’Gönül Yarası’]
listesi içindeki filmleri döngü ile teker teker ekrana yazdırınız.
1’den 10’a kadar sayıların toplamını bulunuz.
Java ile Nesne Yönelimli Programlama Ders Notları-Oğuzhan TAŞ Beykent Üniversitesi 24
Kaynaklar
Deitel & Deitel, «Java How to Program», Prentice Hall Yayınevi.
Altuğ B. Altıntaş, «Java ile Yazılım Tasarımı», Papatya Yayınevi.
Bruce Eckel, «Thinking in Java», Prentice Hall Yayınevi
K.Sierra, B. Bates, «Head First Java», Oreilly Yayınevi
Oracle Java Docs https://docs.oracle.com/
MIT Üniversitesi Java Ders Notları Lecture Notes | Introduction to Programming in Java | Electrical Engineering and Computer Science | MIT OpenCourseWare
Açık Kaynak Java Kitabı Javanotes 8.1.3 -- Title Page (hws.edu)
Cornell Üniversitesi Ders Notları CS 2110 Spring 2014 (cornell.edu)
Yardımcı Kaynaklar
Deitel & Deitel, «Android How to Program», Palme Yayıncılık (Türkçe çeviri)
Özcan Acar, «Java Tasarım Şablonları», Pusula Yayınevi.
Memik Yanık, «Java 8», Sistem Yayınevi
Oğuzhan TAŞ, «C# başlangıç kitabı», 119 Sayfa, 2014.
Oğuzhan TAŞ, «C# ile Nesne Yönelimli Programlama Ders Notları», 2021.
Oğuzhan TAŞ, «C++ ile Nesne Yönelimli Programlama Ders Notları», 2020.
Oğuzhan TAŞ, «Python Ders Notları», 2020.
Oğuzhan TAŞ, «JavaScript, REACT Ders Notları»,2020.
Oğuzhan TAŞ, «Flutter Ders Notları», 2020,2021.
Oğuzhan TAŞ, «Veritabanı Ders Noları», 2010-2021.
Java ile Nesne Yönelimli Programlama Ders Notları-Oğuzhan TAŞ Beykent Üniversitesi 26