• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Podstawy C++, Alex Allain

VPS Starter Arubacloud
0 głosów
845 wizyt
pytanie zadane 18 listopada 2017 w C i C++ przez Moonika Nowicjusz (120 p.)

Witam wszystkich! 

To moja pierwsza w życiu wypowiedź na forum, dlatego trochę się stresuję :) Ale do rzeczy: szukam swojej pasji i myślę: może to programowanie? Dlatego zaczęłam się uczyć. Właśnie pracuję nad rozwiązaniem  zadania z książki Alexa Allain`a:  Napisz program obliczający sumę narastającą liczb wprowadzanych przez użytkownika , który zakończy swoje działanie, gdy użytkownik wprowadzi 0. Czytałam już o tym zadaniu na forum i mój kod wygląda następująco: 



#include <iostream>
#include <cstdlib>
#include <windows.h>

using namespace std;

int main()
{
    int liczba, suma=0;

    while(liczba!=0)
    {
        cout << "Podaj liczbe: ";
        cin>>liczba;
        suma+=liczba;
        cout<<"Suma = "<<suma<<endl;
        Sleep(500);
        system("cls");
    }
    cout<<"Ups.";
   return 0;
}

Zastanawiam się bardzo i nie umiem tego rozwikłać: dlaczego pomimo wpisania wartości 0 wciąż na ekranie pojawia się tekst: "Suma = ..."? Wydaje mi się, że nie powinien, skoro polecenie pisania na ekranie zawarte jest  w pętli, której warunek powtarzalności właśnie nie został spełniony. Proszę o dwa słowa wyjaśnienia/korekty :) Pozdrawiam!

2 odpowiedzi

+1 głos
odpowiedź 18 listopada 2017 przez Aisekai Nałogowiec (42,190 p.)
edycja 18 listopada 2017 przez Aisekai
Chodzi o to, że zmienna liczba, nie miała jeszcze przypisanej wartości (pewnie jej wartość to jakieś "śmieci" z pamięci). Więc cały kod zawarty w pętli został wykonany.  A jako, że w pętli masz polecenie wypisania sumy na ekran - została ona wypisana. Jeżeli jako pierwszą liczbę, podałaś 0, to i tak Ci się wykona pętla jeden raz, ale nie wykona  się już następnym razem.

EDIT: Głównie chodzi o to, że jeżeli warunek został spełniony, to wtedy wykonuje się cały kod zawarty w pętli (jeżeli nie spotka gdzieś jakiegoś breaka, continue, czy czegoś takiego).  To nie działa tak, że jeżeli wprowadzisz do zmiennej liczba wartość 0 to od razu Ci wyjdzie z pętli.
Najpierw zostaje sprawdzony warunek, potem zostaje wykonany kod i to zostaje zapętlone do czasu, aż warunek nie da wartości fałsz.
komentarz 18 listopada 2017 przez Moonika Nowicjusz (120 p.)
Ach tak...! Teraz już rozumiem, wielkie dzięki :)
0 głosów
odpowiedź 19 listopada 2017 przez Emil Kob Bywalec (2,640 p.)
Warunek pętli sprawdzany jest gdy kod zawarty w pętli zostanie wykonany do końca.

Podobne pytania

0 głosów
1 odpowiedź 597 wizyt
0 głosów
0 odpowiedzi 424 wizyt
+1 głos
3 odpowiedzi 2,482 wizyt
pytanie zadane 29 sierpnia 2016 w C i C++ przez FatDeiv Początkujący (300 p.)

93,008 zapytań

141,975 odpowiedzi

321,256 komentarzy

62,350 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Wprowadzenie do ITsec, tom 2

Można już zamawiać tom 2 książki "Wprowadzenie do bezpieczeństwa IT" - będzie to około 650 stron wiedzy o ITsec (17 rozdziałów, 14 autorów, kolorowy druk).

Planowana premiera: 30.09.2024, zaś planowana wysyłka nastąpi w drugim tygodniu października 2024.

Warto preorderować, tym bardziej, iż mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy dodatkowe 15% zniżki! Dziękujemy zaprzyjaźnionej ekipie Sekuraka za kod dla naszej Społeczności!

...