JAVA – DÖNGÜLER
·
Arkadaşlar en başta sizi
örnekleri kendiniz çalıştırırken proje ve class isimlerinin farklı olması
durumundan çalışmama gibi bir durum olacağı için uyarmak istiyorum. Kendi
programınızın ismine göre değiştirmeyi unutmayınız.
Yazılan programlarda bazen belli komut parçalarının
birçok kez çalışması gerekebilir. Yani bazı komut parçalarının, belli şartlar
altında tekrar tekrar işlenmesi gerekebilir. Döngü deyimleri, bahsedilen komut
parçalarının belirtilen şartlar gerçekleştikçe tekrar tekrar işlenmesini sağlar.
Java’da üç tür döngü vardır. Bunlar; “for”, “do-while” ve
“while” döngüleridir. Bu döngülerden for ve while döngüsünde, koşul sınaması
döngüye girmeden önce yapılırken, do-while döngüsünde koşul sınaması bir kod
parçası çalıştıktan sonra yapılır.
For Döngüsü
İstenen
deyim(ler)in kaç kez tekrarlanacağı biliniyorsa, for döngü yapısını kullanmak
kolaydır.
Tekrarlanacak
deyim tek ise sözdizimi şöyledir:
for( başlangıç değeri ; koşul değeri ; sayaç değeri değişimi)
şarta bağlı tekrarlanmasını istediğimiz
işlem;
Tekrarlanacak
deyimler birden çoksa, onlar bir blok içine alınır, sözdizimi şöyle olur:
for( başlangıç değeri
; koşul değeri ; sayaç değeri değişimi)
{
şarta bağlı tekrarlanmasını istediğimiz işlemler;
}
Şimdi
örneklerimizi inceleyelim:
public class Test {
public static void main(String args[]) {
for(int x = 10; x < 20; x = x + 1) {
System.out.print("x : " + x );
System.out.print("\n");
}
}
}
ÇIKTI
x :
10
x :
11
x :
12
x :
13
x :
14
x :
15
x :
16
x :
17
x :
18
x :
19
public class Main {
public static void main(String[]
args) {
for (int i = 0; i <
10; i++) {
for (int j = 0; j <
10; j++) {
System.out.println(i
+ "*" + j + " = " + i * j);
}
System.out.println();
}
}
}
ÇIKTI
0*0 = 0
1*1 = 1
1*2 = 2
1*3 = 3
1*4 = 4
1*5 = 5
1*6 = 6
1*7 = 7
1*8 = 8
1*9 = 9
.
.
.
9*0 = 0
9*1 = 9
9*2 = 18
9*3 = 27
9*4 = 36
9*5 = 45
9*6 = 54
9*7 = 63
9*8 = 72
9*9 = 81
|
Şimdi de aynı gibi görünüp aynı olmayan 2 örneği inceleyelim:
class For01 {
public static void main(String
args[]) {
int i;
int sum = 0 ;
for (i=1; i <=100; i++) {
sum = sum + i;
System.out.println(sum);
}
}
}
class For02 {
public static void main(String
args[]) {
int sum = 0 ;
for (int i=1; i <=100;
i++) {
sum = sum + i;
System.out.println(sum);
}
}
}
|
Bu
iki örneğe bakacak olursak çıktımız aynı olacaktır. Fakat For01.java programında i değişkeni main metodunun bir yerel değişkenidir. main içindeki her
deyim onu görebilir ve kullanabilir. Gerçekten, for denetim yapısı, kendi dışında bildirimi
yapılan i değişkenini tanımakta ve kullanabilmektedir. For02.java programında i değişkeni for denetim yapısının bir yerel değişkenidir.
Yalnızca bu yapı içinde tanınır ve kullanılabilir. main veya class içindeki başka deyimler bunu göremez ve
kullanamaz. Böyle olduğunu görmek için, örneğin, for döngüsünden sonra
System.out.println(i);
deyimini koyunuz.
Programınızın derlenemediğini göreceksiniz.
While Döngüsü
While döngüsünde, while komutu
içerisindeki ifade “true” değerini aldığı müddetçe while döngüsünün bloğu
içerisindeki kod parçaları işlenir. Eğer while komutu içerisindeki değer
“false” değerini alırsa, döngü bloğunun çalışmasi sonlanır.
While döngüsünün yapısı şu şekildedir:
while(ifade){
. . .
}
import java.util.Scanner;
public class Main {
public static void main(String[]
args) {
int toplam=0;
System.out.println("Lütfen
5 sayi giriniz: ");
Scanner
s=new Scanner(System.in);
int i=1;
while (i<6) {
System.out.println(i+".
sayiyi giriniz: ");
int sayi=s.nextInt();
toplam+=sayi;
i++;
}
System.out.println("Girdiginiz
sayilarin toplami = "+toplam);
}
}
ÇIKTI
Lütfen 5 sayi
giriniz:
1.sayiyi
giriniz:
//5
2.sayiyi
giriniz:
//2
3.sayiyi
giriniz:
//8
4.sayiyi
giriniz:
//3
5.sayiyi
giriniz:
//7
Girdiğiniz
sayilarin toplami:
//25
|
class While01 {
public static void main(String[]
args) {
int sayaç
= 0;
while (sayaç
< 10) {
System.out.printf("\t
%d ", sayaç);
sayaç++;
}
ÇIKTI
0 1 2 3 4 5 6 7 8 9
|
}
package döngüler;
class While02 {
public static void main(String[]
args) {
int n
= 1;
int toplam
= 0;
while (n
<= 10) {
toplam = toplam
+ n;
System.out.printf("
1 den %d 'e kadar TOPLAM = %d %n", n, toplam);
n++;
}
}
}
|
ÇIKTI
1 den 1 'e kadar TOPLAM = 1
1 den 2 'e kadar TOPLAM = 3
1 den 3 'e kadar TOPLAM = 6
1 den 4 'e kadar TOPLAM = 10
1 den 5 'e kadar TOPLAM = 15
1 den 6 'e kadar TOPLAM = 21
1 den 7 'e kadar TOPLAM = 28
1 den 8 'e kadar TOPLAM = 36
1 den 9 'e kadar TOPLAM = 45
1 den 10 'e kadar TOPLAM = 55
|
Do - While Döngüsü
Do-while döngüsü ise while döngüsüne çok
benzer. While döngüsünden farkı; do-while döngüsü koşul çalıştırılmadan önce
kod bloğu bir defa çalışır ve sonra koşula girer. Yani koşul doğru olsa da
olmasa da kod bloğu bir defa çalışmış olur. Bu fark aslında önemli bir farktır.
do{
. . . . //kod blogu
. . . .
}while(ifade);
public class Main {
public static void main(String[]
args) {
int toplam=0;
int i=0;
do{
if(i%2==0){
toplam+=i;
}
i++;
}while(i<=10);
System.out.println("(10
dahil)10'a kadar olan çift sayilar toplami: "+toplam);
}
}
|
ÇIKTI
En çok 10 haneli bir tamsayı
giriniz: 1234567896 1234567896 sayısında 10 hane vardır.
|
ÇIKTI
1 den 1 'e kadar TOPLAM = 1
1 den 2 'e kadar TOPLAM = 3
1 den 3 'e kadar TOPLAM = 6
1 den 4 'e kadar TOPLAM = 10
1 den 5 'e kadar TOPLAM = 15
1 den 6 'e kadar TOPLAM = 21
1 den 7 'e kadar TOPLAM = 28
1 den 8 'e kadar TOPLAM = 36
1 den 9 'e kadar TOPLAM = 45
1 den 10 'e kadar TOPLAM = 55
|
package döngüler;
class DoWhile01 {
public static void main(String[]
args) {
int n
= 1;
int toplam
= 0;
do {
toplam = toplam
+ n;
System.out.printf("
%d den %d 'e kadar TOPLAM = %d %n", 1, n, toplam);
n++;
}
while (n
<= 10);
}
}
|
ÇIKTI
(10 dahil)10'a kadar olan çift sayilar toplami: 30
|
package döngüler;
import java.util.Scanner;
class BasamakSay {
public static void main(String[]
args) {
long n;
long i
= 0;
Scanner
scan = new Scanner(System.in);
System.out.println("En
çok 10 haneli bir tamsayı giriniz:");
n = scan.nextLong();
do {
++i;
n = n / 10;
} while
(n > 0);
System.out.printf("%d
sayısında %d hane vardır.", n, i);
}
}
|
Yorumlar
Yorum Gönder