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

Pętla while - Co jest nie tak?

Fiszki IT
Fiszki IT
0 głosów
93 wizyt
pytanie zadane 7 września 2018 w C i C++ przez Młody Piotrek Nowicjusz (220 p.)
edycja 7 września 2018 przez Patrycjerz

Siemka programiści! Uczę się programowania od 3 miesięcy i próbowałem zrobić nawet najbardziej bezsensowny program, żeby sobie poćwiczyć. Kiedy chce "wydrukować" na ekranie podaną liczbę 10 razy, wtem dzieją się rzeczy niestworzone. Siedzę nad tym od 30 minut i jakoś nie mogę... Jakieś porady???

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

using namespace std;

int main()
{
   int nr;
    cout << "Siema kolego! Podaj swoj numer domu!" << endl;
    cin >>nr;
    int wybor;
    if (nr>=50)
    {
        cout<< "Twoj numer domu jest wiekszy lub rowny 1! \nChcesz zeby wypisac twoj numer dumu 10 razy?"<<endl;
        cout << "1. Tak"<<endl;
        cout << "2. Nie"<<endl;
        cin >>wybor;

            switch (wybor)

            case 1:

      cout<<"  Okej, da sie zalatwic "<<endl;

 

    do
{
       cout<<nr<<endl;
       Sleep (400);

}
while (nr=10);

 

    }
}
1
komentarz 7 września 2018 przez niezalogowany
Kod w bloczek :)

1 odpowiedź

0 głosów
odpowiedź 7 września 2018 przez Artur Koniec Bywalec (2,850 p.)
edycja 7 września 2018 przez Artur Koniec
#include <iostream>
#include <windows.h>

using namespace std;

int main()
{
   int nr;
    cout << "Siema kolego! Podaj swoj numer domu!" << endl;
    cin >>nr;
    int wybor;
    if (nr>=1)
    {
        cout<< "Twoj numer domu jest wiekszy lub rowny 1! \nChcesz zeby wypisac twoj numer dumu 10 razy?"<<endl;
        cout << "1. Tak"<<endl;
        cout << "2. Nie"<<endl;
        cin >>wybor;

            switch (wybor){
            case 1:
            cout<<"  Okej, da sie zalatwic "<<endl;
            int x = 0;
            do
            {
              cout<<nr<<endl;
              Sleep (400);
              x++;
            }
            while (x<10);
            break;
           }
    }
}

A gdzie break w switchu? Sprawdź i daj znać czy działa

Edit! Znalazlem niezły bubel w kodzie.

komentarz 7 września 2018 przez Młody Piotrek Nowicjusz (220 p.)
Niestety, jak jak próbuję na początku wyskakuje 55 a pozniej w nieskończoność lecą dziesiątki
komentarz 7 września 2018 przez Artur Koniec Bywalec (2,850 p.)
Z edytowałem, odśwież, spróbuj jeszcze raz, zmieniłem

if (nr>=50)

na

if (nr>=1)

myślę, że o to ci chodziło
komentarz 7 września 2018 przez Artur Koniec Bywalec (2,850 p.)
Na przyszłość
== to nie to samo co =
= służy do przypisywania wartości (int x = 0)
== służy do porównywania wartości (if(x == y))

Jeżeli masz switcha, opakuj go w klamry, i zawsze na końcu case'a, daj break; bo inaczej program się wysypie

Staraj się czytelniej formatować kod, na forum dawaj go w bloczku.
Tak osobiście, jeżeli chcesz coś zrobić 10 razy, to zamiast do while używaj for(int i=0; i<10;i++), ewentualnie while z dodatkową zmienną, ale to moja subiektywna opinia ;)
komentarz 7 września 2018 przez Lukin Początkujący (260 p.)
Co do switcha to nie trzeba dawać break po każdym case. Nieprawdą jest, że program się wtedy wysypie. Takim program się skompiluje i będzie działał. Break w instrukcji case powoduje, że po przejściu tego przypadku nie przerabiamy kolejnego.

Wiadomo że trzeba tego używać świadomie i trzeba wiedzieć kiedy dawać break a kiedy nie. Są takie mechanizmy, które wykorzystują brak breaków po case'ach aby coś zrealizować łatwiej lub bardziej wydajnie.

Możesz poczytać na Wiki o Duff's machine. Ale nie polecam próby zrozumienia tego kodu :-D

Podobne pytania

0 głosów
2 odpowiedzi 178 wizyt
pytanie zadane 1 maja 2017 w JavaScript przez PindonMniejszy Bywalec (2,740 p.)
0 głosów
2 odpowiedzi 77 wizyt
pytanie zadane 15 stycznia 2018 w JavaScript przez Szymon Bisiorek Nowicjusz (120 p.)
0 głosów
1 odpowiedź 82 wizyt
pytanie zadane 6 grudnia 2018 w JavaScript przez DarekP Nowicjusz (140 p.)
Porady nie od parady
Zadając pytanie postaraj się o szczegółowe opisanie problemu oraz udostępnienie wszystkich istotnych informacji (kody źródłowe, zrzuty ekranu itp.).Opisanie problemu

84,745 zapytań

133,550 odpowiedzi

295,964 komentarzy

56,007 pasjonatów

Motyw:

Akcja Pajacyk

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

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...