Turkcell | Geleceği Yazanlar

Array test sorusu

Cevap: 3.0,4.0,5.0 Açıklar mısınız?
 

public static void main(String[] args) {		
	double[] values = new double[10];
	int start = 10;
	for (int i = 1; i < values.length; --start) {
		values[i] = start / 2;			
		System.out.print(values[i] + "- -");
		i = i + 2;
	}		
}

 

    0

    Arda Akdere

    04 Kasım 2019

    Öncelikle 10 adet double türünde veriyi barındırabilecek bir dizi oluşturulmuş (double[] values = new double[10];)

    integer türünde start adında 10 değerinde bir değişken oluşturulmuş(int start=10;)

    for (int i = 1; i < values.length; --start)

     Yukarıdaki ifadede for döngüsü yaratılmış

    Başlangıçta i değişkenine 1 değeri atanmış(int i=1)

     Bu for döngüsünün i değişkeninin dizinin boyutundan küçük olduğu sürece for döngüsünün tekrar edeceği yazılmış (i < values.length) yani i değişkeni 10'dan küçük olduğu sürece

    ve son olarak (--start) her döngünün sonunda start değişkeninin 1 azalması gerektiğini söylüyor.

    for 'un içine geçersek

    values[i]= start/2 ifadesi örnek üstünden anlatmak gerekirse diyelim programı çalıştırdık.

    for döngüsünün ilk seferinde i değerimiz 1'di o zaman values[1]=start/2 'ye eşitlenecek demektir. yani dizimizin 2. elemanının değeri o sıradaki start değerinin yarısına eşitlenecek ((Bilginiz var mı emin değilim ama söylemeden geçmeyeyim dizilerin 1. değeri array[0] 'a karşılık gelir.))

    System.out.print(values[i] + "- -") ifadesi ekrana values[i] nin yani for döngüsünün ilk seferini baz alırsak values[1] in değeri olan start/2'i yani o anki start değeri 10 olduğuna göre 10/2 den 5 'i ekrana "values[1] = 5" şeklinde yazdıracaktır.

     

    VE son olarak for döngüsünün içindeki son kod olan i= i+2; ifadesi i değerinin 2 artırılmasını söylüyor. Örneklemek gerekirse yeniden hep aynı örnek üzerinden gittim for döngüsünün ikinci seferi başladığında artık i değerimiz 3 olacaktır ( 1+2 den)

    ve daha sonra tekrardan for döngüsünün şartlarına bakarsak yukarıda açıkladığımız (int i = 1; i < values.length; --start)

    i değerimiz 3 olduğuna göre ve 3 <10 olduğuna göre for döngümüzün tekrar başlaması için bir sebep yok bu şart sağlanmayana kadar for döngüsü aktif olacaktır.

    Son olarak çıktıdan bahsedeyim.

    çıktı 

    5.0- -4.0- -4.0- -3.0- -3.0- - şeklinde olacaktır anlattıklarımı takip edip anlayarak ilerlerseniz nedenini kolaylıkla anlayabileceğinize inanıyorum

    Bu soruya cevap vermek için üye olmanız veya giriş yapmanız gerekmektedir.