Soru & Cevap

Array test sorusu ...

03.11.2019 - 06:32

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

 

340 Görüntülenme

1 Cevap

Sitedeki sorulara cevap verebilmek için giriş yapın ya da üye olun.

Profile picture for user arda.akdere
arda.akdere
04.11.2019 - 11:36

Ö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