Java Java döngülerinde sayaç değerleri neden farklı alınıyor?

Shylex

Decapat
Katılım
21 Kasım 2021
Mesajlar
78
Daha fazla  
Cinsiyet
Erkek
Merhaba, aşağıda belirteceğim kodlar arasında mantık olarak fark yok lakin birinde sayaç değerini 0'dan alırken diğerinde 1'den alıyor. Sebebini açıklayacak bir babayiğit çıkar mı?

Kod:
package com.mycompany.dongu;

public class Dongu {

 public static void main(String[] args) {

 for(int i = 0; i<10; i++){

 System.out.println("Mevcut sıra: "+i);

 }

 }
}

Diğer kod;

Kod:
package com.mycompany.dongu2;

public class Dongu2 {

 public static void main(String[] args) {

 int i = 0 ;

 while(i<10){

 i++;
 System.out.println("Mevcut sıra: "+i);

 }

 }
}
 
Son düzenleyen: Moderatör:
Birisinde önceden arttırmış oluyorsunuz
İ++ kodunu while döngüsünde çıkıştan sonra yapın.

Yanıtın için teşekkürler, denedim ve farkı anlamamda yardımı oldu.

Daha sonradan bu sayfayı okuyacak arkadaşlar için aldığım farklı bir açıklama;

İlk kod parçasında for döngüsü kullanılmış. Bu döngüde i değişkeni başlangıçta 0 değerini alır ve her iterasyonda (i++ ifadesiyle) bir artırılarak döngü devam eder. İkinci kod parçasında ise while döngüsü kullanılmış. İ değişkeni başlangıçta 0 olarak belirlenir, ancak döngünün içinde hemen artırılır (i++ ifadesiyle) ve her iterasyonda döngüye girilmeden önce i değeri artırılmış olur.

Yani aslında mantıksal olarak bir fark yok, ancak döngünün başlangıç değeri ve artırma işlemi farklı şekilde yapılmış. İlk kod parçasında bu işlemler for döngüsünün içinde bir arada yapılırken, ikinci kod parçasında while döngüsünde döngüye girilmeden önce artırma işlemi gerçekleştirilir. Bu nedenle for döngüsünde i değeri 0'dan başlar, while döngüsünde ise 1'den başlar.
 
Java:
 while(i < 10) {
     System.out.println("Mevcut sıra: " + i++); // Tek satırda hallettik
 }

Java:
 while(i < 10) {
     System.out.println("Mevcut sıra: " + ++i);
 }

İki farklı kod yazdım ikisini de dene farkı gör. Anlamana yardımcı olacaktır.
 
Aslında sorun yok, Çıktıyı değer artmadan önce alıyorsunuz.
Java:
 while(i < 10) {
     System.out.println("Mevcut sıra: " + i++); // Tek satırda hallettik
 }

Java:
 while(i < 10) {
     System.out.println("Mevcut sıra: " + ++i);
 }

İki farklı kod yazdım ikisini de dene farkı gör. Anlamana yardımcı olacaktır.
Teşekkürler.
 

Yeni konular

Geri
Yukarı