do-while
Döngüsü
for
döngüsü bölümünde while
'ın işleyiş adımlarını da görmüştük:
hazırlık koşul denetimi asıl işlemler ilerletilmesi koşul denetimi asıl işlemler ilerletilmesi ...
do-while
'ın while
'dan farkı, koşul denetiminin sonda olması ve bu sayede işlemlerin en az bir kere işletilmeleridir:
hazırlık (while'dan daha az durumda gerekir) asıl işlemler ilerletilmesi koşul denetimi ← koşul denetimi sonda asıl işlemler ilerletilmesi koşul denetimi ← koşul denetimi sonda ...
Örneğin, tuttuğu sayının tahmin edilmesini bekleyen bir programda do-while
döngüsü daha doğal gelebilir:
import std.stdio; import std.random; void main() { int sayı = uniform(1, 101); writeln("1'den 100'e kadar bir sayı tuttum."); int tahmin; do { write("Tahmininiz nedir? "); readf(" %s", &tahmin); if (sayı < tahmin) { write("tuttuğum sayı daha küçük; "); } else if (sayı > tahmin) { write("tuttuğum sayı daha büyük; "); } } while (tahmin != sayı); writeln("Doğru!"); }
uniform
, std.random
modülünde bulunan bir işlevdir. Belirtilen aralıkta eşit dağılımlı rasgele sayılar üretir. Yukarıdaki kullanımında; aralığı belirleyen ikinci değer, çıkacak sayılar arasında değildir. Diğer kullanımlarını öğrenmek için std.random modülünün belgesine bakabilirsiniz.
Problem
Aynı oyunu bilgisayara oynatın; tuttuğunuz sayıyı en fazla 7 tahminde bulacaktır.