While döngüsü, koşula sahip bir döngüdür. Koşul true olduğu sürece döngü çalışır ve içerisindeki işlemi çalıştırır. Koşulun kontrol edilmesi döngüye girmeden önce yapılır. Koşulun true olması durumunda döngüye girer ve koşul sağlanmaya devam ettiği sürece while döngüsü çalışır. While döngüsü ile for döngüsü arasında bir kaç fark vardır bunlar:
- For döngüsünde herhangi bir koşul belirtilmediği sürece sonsuz döngüye girer.
- While döngüsünde herhangi bir koşul belirtilmezse döngü hata verir.
- For döngüsünde yineleme ifadesi en üste yazılır.
- While döngüsünde yineleme ifadesi döngünün herhangi bir yerine yazılabilir.
While döngüsünün genel kullanım şekli şu şekildedir:
1 2 3 | while(koşul) { //işlemler } |
While döngüsü hakkında örnekler yapalım.
1. Örnek
While döngüsü ile 10’dan 1’e kadar yazdırmak.
1 2 3 4 5 6 | int i=10;//Değişkenimizi tanımlıyoruz. while(0<i) {//Koşulumuzu belirtiyoruz System.out.println(i);//Değişkenimizin ekran çıktısını veriyoruz. i--;//i değişkenin birer azalmasını sağlıyoruz. } |
Ekran Çıktısı
1 2 3 4 5 6 7 8 9 10 | 10 9 8 7 6 5 4 3 2 1 |
2. Örnek
While döngüsüyle girilen sayıdan 1’e kadar, ikişer yazdıran program.
1 2 3 4 5 6 7 | Scanner scanner = new Scanner(System.in); System.out.println("Sayı giriniz") int i= scanner.nextInt();//Değişkenimizi tanımlıyoruz. while(0<i) {//Koşulumuzu belirtiyoruz System.out.println(i);//Değişkenimizin ekran çıktısını veriyoruz. i-=2;//i değişkenin ikişer olarak azaltıyoruz. } |
Ekran Çıktısı
1 2 3 4 5 6 7 8 9 | Sayı giriniz 13 13 11 9 7 5 3 1 |
3. Örnek
While döngüsü ile klavyeden girilen sayıdan 0’a kadar olan sayıların toplamını hesaplayan program.
1 2 3 4 5 6 7 8 9 10 | Scanner scanner = new Scanner(System.in); int toplam =0, i=0;//Değişkenlerimizi 0'a eşitleyerek tanımlıyoruz. System.out.println("Sayı giriniz"); int n = scanner.nextInt(); while(n>=i) {//Koşulumuzu giriyoruz. toplam +=i;//Sayıların toplamını sağlıyoruz ve sonucu toplam değişkeninde tutuyoruz i++;//Sayıları birer birer arttırıyoruz. } System.out.println("Sayıların toplamı = " +toplam); |
Ekran Çıktısı
1 2 3 | Sayı giriniz 5 Sayıların toplamı = 15 |
4. Örnek
While döngüsü ile sayının faktöriyelini hesaplama programı.
1 2 3 4 5 6 7 8 9 | Scanner scanner = new Scanner(System.in); int fakt = 1; System.out.println("Sayı giriniz"); int n = scanner.nextInt(); while(n >0) {//Koşulumuzu giriyoruz. fakt *=n;//n sayısından 0'a kadar olan sayıların çarpılmasını, ve sonucu elimizde tutmayı sağlıyoruz. n--; //azaltam operatörü ile birer birer azaltıyoruz. } System.out.println("Girilen sayının faktöriyeli = " +fakt); |
Ekran Çıktısı
1 2 3 | Sayı giriniz 5 Girilen sayının faktöriyeli = 120 |
5. Örnek
Girilen sayının kaç basamaklı olduğunu bulan program.
1 2 3 4 5 6 7 8 9 10 | Scanner scanner= new Scanner(System.in); int n, basamak; System.out.println("Bir sayı giriniz "); n = scanner.nextInt(); basamak=1; while(n>=10) {//Koşulumuzu giriyoruz. n = n/10;//Kaç basamaklı olduğunu bulmak için işlam sağlıyoruz. basamak++;//Her bölünme sonucunda basamak degiskeni 1 artıyor. } System.out.println("Sayınız "+basamak+" basamaklıdır"); |
Ekran Çıktısı
1 2 3 | Bir sayı giriniz 133 Sayınız 3 basamaklıdır |