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

Robienie pętli w C++

Object Storage Arubacloud
0 głosów
155 wizyt
pytanie zadane 11 listopada 2022 w C i C++ przez mlodypanem Nowicjusz (140 p.)
Cześć

Bawię się w C++ i chciałbym stworzyć pętlę a dokładnie użytkownik jeżeli wprowadzi zły wyniki, pokaże się informacja "Spróbuj jeszcze raz" i tak w pętli a jak prawidłowy do pokaże się "Super". Aktualnie mam błąd, gdyż po wpisaniu prawidłowej wartości pojawia się najpierw "Spróbuj jeszcze raz" a za drugim razem "Super". Jak naprawić ten błąd?

 

#include <windows.h>
#include <conio.h>
#include <iostream>
#include <string>
using namespace std;
//VOID WINAPI Sleep(DWORD dwMilliseconds);
string st;

int main ()
{

cout << "    Wprowadz imie" << endl;

string name;
cin >> name;

string greeting = "    Witaj! ";
string user = name;
string message = greeting + user;
cout << message << endl;

cout << "    Ile masz lat? " << endl;
int number;
cin >> number;
cout << "    Gotowa aby na wspolna gre?  Jezeli tak wcisnij dowolny przycisk. "<< endl;
int klawisz;
    klawisz = getch();

cout << endl;

int dl;

{
  cout << "    Pogramy w porównywanie." << endl;  
  Sleep(2000);
  cout << endl;
    cout<<"Zadanie 1." << endl;
    cout << "    Natalka zjadla pięć cukierku a Amelka o trzy więcej. Ile cukierków zjadła Amelka?" << endl;
    getch();

int score;
do
{
        cin >> score;
    cout<< "  Spróbuj jeszcze raz" << endl;  
}while (score !=8);

{
        cin >> score;
    cout << "   Super!!!" << endl;
}if (score ==8);
}
}

1 odpowiedź

0 głosów
odpowiedź 11 listopada 2022 przez Krzysztofs1234 Użytkownik (890 p.)
int score;
do
{
        cin >> score;
    cout<< "  Spróbuj jeszcze raz" << endl;  

Twój błąd leży tutaj. Definiujesz zmienną score, następnie jest wczytywana do niej wartości i dalej bez żadnego warunku ma się wyświetlić "Spróbuj jeszcze raz".

Możesz nad pętlą poprosić użytkownika o podanie odpowiedzi, następnie utworzyć pętle while (nie do while) z warunkiem score!=8 i w jej ciele umieścić kolejno:

cout<< "  Spróbuj jeszcze raz" << endl;  
cin >> score;

Bezpośrednio pod pętlą możesz wyświetlić "Super!!!", bo przecież zostanie opuszczona dopiero przy poprawnej odpowiedzi.

komentarz 11 listopada 2022 przez mlodypanem Nowicjusz (140 p.)
Dzięki za podpowiedź, ale jestem typowym świeżakiem  i za bardzo nie rozumiem, czy możesz mi to przedstawić na podstawie kodu
komentarz 11 listopada 2022 przez Krzysztofs1234 Użytkownik (890 p.)
int score;

cout << "Podaj wynik: ";
cin >> score;

while(score!=8)
{
    cout <<  "Sprobuj jeszcze raz" << endl;
    cin >> score;
}

cout << "Super";

 

komentarz 11 listopada 2022 przez mlodypanem Nowicjusz (140 p.)

Super dzięki za pomoc za dużo o jeden ;  dodałem przy while

komentarz 11 listopada 2022 przez Oscar Nałogowiec (29,290 p.)

@Krzysztofs1234, pętla do ... while jest tutaj własciwa - ma być przynajmniej raz zapytanie. Trzeba tylko na końcu wariantowo napisać komunikat.

komentarz 11 listopada 2022 przez Krzysztofs1234 Użytkownik (890 p.)
Pisząc "następnie utworzyć pętle while (nie do while)", chciałem jedynie doprecyzować, że w swojej propozycji miałem na myśli właśnie pętlę while. Oczywiście pętla do while również jest tutaj właściwa.

Podobne pytania

0 głosów
0 odpowiedzi 117 wizyt
pytanie zadane 23 maja 2017 w JavaScript przez Zahrad Użytkownik (740 p.)
0 głosów
0 odpowiedzi 89 wizyt
pytanie zadane 17 kwietnia 2020 w C i C++ przez dominik195k Obywatel (1,030 p.)
0 głosów
4 odpowiedzi 2,213 wizyt
pytanie zadane 8 października 2015 w C i C++ przez Kondzio Mądrala (5,230 p.)

92,555 zapytań

141,403 odpowiedzi

319,554 komentarzy

61,939 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.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...