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

Robienie pętli w C++

Aruba Cloud - Virtual Private Server VPS
0 głosów
215 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,340 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 135 wizyt
pytanie zadane 23 maja 2017 w JavaScript przez Zahrad Użytkownik (740 p.)
0 głosów
0 odpowiedzi 102 wizyt
pytanie zadane 17 kwietnia 2020 w C i C++ przez dominik195k Obywatel (1,030 p.)
0 głosów
4 odpowiedzi 2,327 wizyt
pytanie zadane 8 października 2015 w C i C++ przez Kondzio Mądrala (5,230 p.)

93,326 zapytań

142,323 odpowiedzi

322,390 komentarzy

62,654 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 1 Wprowadzenie do ITsec, tom 2

Można już zamawiać dwa tomy książek o ITsec pt. "Wprowadzenie do bezpieczeństwa IT" - mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy aż 15% zniżki! Dziękujemy ekipie Sekuraka za fajny rabat dla naszej Społeczności!

...