[]

[C++] Surdaki ufak detayi aciklayabilecek var mi?

int a = 42;
do {
cout << a << endl;
a++;
} while(a < 5);


Bu yukaridaki kodda a++ ne icin yazilmis tam olarak, o olmadan da program calisiyor, etkisini cozemedim ben. ++a da bir degisiklik yaratmiyor

 
Koddaki mantık baştan hatalı. a++ olmadan da yanlış çalışıyor, o olsa da yanlış çalışıyor. Sen fark göremiyorsun o yüzden.

Bu kodu kim yazdı? Sen neresini editledin? Tecrübeyle editlenmiş bir kod değil bu.
  • harzem  (22.08.16 01:24:05) 
Kod sololearn'un tutorialindan.
i.imgur.com

Bir de ingilizce kitap onerilerine acigim
  • bollocks44  (22.08.16 01:39:37) 
Verilen örnek, while'daki şartın false olması durumunda kodun bir defa çalışıp biteceğini söylemiş.

Ekrana a'yı bastıktan sonra a'yı bir arttırıyor. Ancak while şartı sağlanmadığı için ve kod tekrar çalışmadığı için arttırılmış halini ekrana basamıyor. Bu yüzden oraya a++ yerine a=a+10 yazsa da, a=1000 yazsa da fark göremezsin. Ancak ilk satırdaki a=42 yerine a=1 yazarsan, fark görmeye başlarsın.
  • harzem  (22.08.16 01:46:02) 
bu kod parçası bir do-while döngüsü örneği gibi duruyor. do-while dögüsünün nasıl çalıştığını anlatmak için.

farz edelim ki kod parçası şu şekilde;

int a = 1;
while(a < 5) {
cout << a << endl;
a++;
}

bu durumda döngü 4 kere çalışacaktır. fakat kod şöyle olsaydı;

int a = 42;
while(a < 5) {
cout << a << endl;
a++;
}

döngü hiç çalışmayacaktı. çünkü a değeri 5'ten büyük ve döngünün çalışması için kriter tutmuyor.

bazen program yazarken, döngü kriteri tutmasa bile döngü içerisindeki kodun en az 1 kere çalışması gerekebiliyor. gerçek hayattan örnek gelmedi aklıma, iyi bir örnek olsaydı daha iyi anlayabilirdin. neyse, işte bu durumlarda do-while loop kullanmak gerekir.

a değeri 5'ten büyük olsa bile döngü içerisindeki kod en az 1 kere çalışır. senin yazdığın kod parçası da, a 42 olsa bile döngü içerisindeki kodun en az 1 kere çalışacağını gösteriyor.

a değişkenine 42 değerini vermek yerine klavyeden okusaydın ne olurdu? eğer girilen sayı misal 2 olsaydı ekrana sırayla 2, 3, 4 yazdırılacaktı. ancak girilen sayı 4 veya daha büyük olsaydı, sadece girilen sayı ekrana yazdırılacaktı.
  • novemba  (22.08.16 03:01:02) 
1
buraya yazılanların hakları Sir Anthony Hopkins'e aittir.
yazan eden compumaster, ilgilenen eden fader
modere edenler angelus, Artibir, aychovsky, baba jo, basond, compumaster, deckard, duyulmasi gerektigi kadar, fader, fraise, groove salad, kahvegibi, kaymaktutmayansicaksut, kibritsuyu, monstro, pandispanya, robin, ron dennis
bu sitede yazılanların hiçbiri doğru değildir. site içeriği küçükler için sakıncalı olabilir. yazılardan yazarları sorumludur. kaynak göstermeden alıntılanamaz. devlet tarafından atanmış bir kurumun internet üzerinde kimin hangi bilgiye ulaşıp ulaşamayacağına karar vermesi insan haklarına aykırıdır. web siteleri kullanıcıların istekleri doğrultusunda bağlandıkları yerlerdir. kullanıcılar isterlerse bir web sitesine bağlanmayabilirler. bu güçleri ve imkanları mevcuttur. bir kullanıcı bir siteye bağlanmak istiyorsa bu onun tercihi ve hakkıdır. bağlanmak istemiyorsa bu yine onun tercihi ve hakkıdır. halkın kendisine hizmet etmesi için görevlendirdiği kurumlar hadlerini aşıp halka neye ulaşıp ulaşmayacağını bilmeyen cahil cühela muamelesi edemezler. ebeveynlerin çocuklarını sakıncalı içeriklerden koruması için çok sayıda bedava ve ücretli yazılım mevcuttur. bu yazılımlar bir web tarayıcısını kullanmaktan daha karmaşık teknik bilgi gerektirmemektedir. devletin milletini küçük düşürmesi ve ebleh yerine koyması yasaktır. Skimlinks ile linkler üzerinden yönlendirme payı alınmaktadır.