• Sonuç bulunamadı

ile Nesne Yönelimli Programlama

N/A
N/A
Protected

Academic year: 2022

Share "ile Nesne Yönelimli Programlama"

Copied!
27
0
0

Yükleniyor.... (view fulltext now)

Tam metin

(1)

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

(2)

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

}

(3)

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++;

}

(4)

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);

}

(5)

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.

(6)

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)

;

(7)

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);

(8)

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++;

}

(9)

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;

}

(10)

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);

(11)

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);

(12)

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');

(13)

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++;

}

(14)

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?

(15)

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++;

}

(16)

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

(17)

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.

(18)

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");

}

}

}

(19)

Siz Yapın

Klavyeden girilen iki sayı arasındaki asal sayıları bulunuz.

(20)

İç içe Döngüler

Java ile Nesne Yönelimli Programlama Ders Notları-Oğuzhan TAŞ Beykent Üniversitesi 20

Çarpım Tablosu Örneği

(21)

İç 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?

(22)

İç 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

(23)

Siz yapın!

23

(24)

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

(25)

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)

(26)

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

(27)

Sorularınız

• Dinlediğiniz için teşekkür ederim.

E-mail: info@oguzhantas.com

Web Sitesi: www.oguzhantas.com

Referanslar

Benzer Belgeler

Başta Visual C++ , Visual C#, Visual Basic olmak üzere Windows Mobile, Windows CE, .NET Framework, .NET Compact Framework ve Microsoft Silverlight tarafından

[r]

Sanal üst sınıf kullanıldığında ise en alt seviyedeki sınıfın (Asistan) dahi en üst seviyedeki sınıfın (Birey) yapıcı fonksiyonunu çağırması

 friendly türünde erişim belirleyicisine sahip olan global alanlar (statik veya değil) içerisinde bulundukları paketin diğer sınıfları tarafından erişilebilirler.. 

 Yeni türetilen sınıf, türetildiği sınıfın global alanlarına ve yordamlarına (statik olsa dahi) otomatik olarak sahip olur (private olanlara doğrudan erişim yapamaz.)..

 Soyut bir sınıftan türetilmiş alt sınıflara ait nesneler, bu soyut sınıf tipindeki referanslara bağlanabilirler (upcasting).  Böylece polimorfizm ve geç

 statik dahili üye sınıf içerisindeki statik bir yordamı çağırmak için ne statik dahili üye sınıfına ne de onu çevreleyen sınıfa ait nesne oluşturmak gerekmez.

 Tüm istisnaları yakalamak (Error, RuntimeException ve diğer Exception türleri) için Throwable istisna tipi kullanılabilir.  Ancak, oluşabilecek istisnalar için bu üç