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

Pętla while, która ma swoje humory.

Object Storage Arubacloud
0 głosów
172 wizyt
pytanie zadane 25 października 2018 w C i C++ przez Wilku Nowicjusz (150 p.)

Witam,

Podczas dzisiejszej nauki chciałem stworzyć prostą grę. Na początku miałem zapytać o wybór poziomu, gdzie przez instrukcję warunkową if chciałem ten wybór zweryfikować. Gdyby jednak użytkownik korzystający z programu się pomylił, chciałem aby wszystko zatoczyło pętlę i mógł znów spróbować. Problem polega na tym, że napisana przeze mnie pętla while nie kończy się nigdy, bez względu na to czy wybieram odpowiedni poziom czy nie. Chciałbym osiągnąć cel gdzie:

Po wpisaniu poziomu "latwy" lub "trudny" wyświetla się informacja z if i dalej przechodzimy poza pętlę (cout<<"Super!";) 

i

Po wpisaniu czegoś zupełnie innego program powraca do wyboru poziomu trudności.

Bardzo proszę o pomoc, bo nie mam pojęcia jak to ugryźć pozdrawiam smiley.

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

using namespace std;

string poziom;

int main()
{
    cout << "Witaj w mojej grze. Jest ona stworzona w ramach cwiczen z programowania w C++. Mam nadzieje, ze cos z tego bedzie." << endl;
    Sleep (1000);
    system("cls");

    do
    {
    cout<< "Wybierz poziom trudnosci (wpisz latwy lub trudny): ";
    cin>>poziom;

    if (poziom=="latwy")
    {
        cout<<"Witaj w poziomie latwym."<<endl;
    }else if(poziom=="trudny")
    {
        cout<<"Witaj w poziomie trudnym."<<endl;
    }else
    {
      cout<<"Blad sprobuj jeszcze raz. "<<endl;
    }
    }while(poziom=="latwy"||poziom=="trudny");
    
    cout<<"Super!";


    system("pause");
    return 0;

 

1
komentarz 25 października 2018 przez Sheida Użytkownik (950 p.)
Pętla while sprawdza, czy podany warunek jest prawdziwy, jeśli tak, powtarza pętlę. W Twoim przykładzie po wybraniu dobrego poziomu warunek jest prawdziwy, przez co się powtarza.

2 odpowiedzi

+2 głosów
odpowiedź 25 października 2018 przez Pabiak Gaduła (4,450 p.)
wybrane 25 października 2018 przez Wilku
 
Najlepsza
while(poziom!="latwy" && poziom!="trudny");

Zamień znak "||" na "&&" i "==" na "!="  ;) Dlaczego tak? Ponieważ w tym warunku pętla będzie się wykonywać tak długo, aż zmienna poziom będzie różna od twoich słów kluczowych, jeżeli to słowo się pojawi warunek będzie nieprawdziwy i pętla się zakończy

+1 głos
odpowiedź 25 października 2018 przez chucksqll Stary wyjadacz (12,930 p.)
while(poziom=="latwy"||poziom=="trudny")

Ten warunek jest prawdziwy kiedy poziom jest równy "latwy lub "trudny" czyli dla tych wartości pętla będzie się wykonywać w kółko, a dla innych przerwie działanie.

 

Podobne pytania

0 głosów
1 odpowiedź 103 wizyt
0 głosów
2 odpowiedzi 295 wizyt
pytanie zadane 25 września 2020 w C i C++ przez kasia6789 Nowicjusz (170 p.)
0 głosów
1 odpowiedź 371 wizyt
pytanie zadane 3 lipca 2019 w C i C++ przez k4to Początkujący (310 p.)

92,555 zapytań

141,403 odpowiedzi

319,557 komentarzy

61,940 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!

...