• 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
158 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,320 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 119 wizyt
pytanie zadane 23 maja 2017 w JavaScript przez Zahrad Użytkownik (740 p.)
0 głosów
0 odpowiedzi 92 wizyt
pytanie zadane 17 kwietnia 2020 w C i C++ przez dominik195k Obywatel (1,030 p.)
0 głosów
4 odpowiedzi 2,233 wizyt
pytanie zadane 8 października 2015 w C i C++ przez Kondzio Mądrala (5,230 p.)

92,696 zapytań

141,607 odpowiedzi

320,114 komentarzy

62,056 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

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!

...