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

Pętla do...while - hasło

Aruba Cloud VPS - 50% taniej przez 3 miesiące!
0 głosów
1,046 wizyt
pytanie zadane 27 kwietnia 2022 w C i C++ przez Mati323 Nowicjusz (210 p.)
edycja 28 kwietnia 2022 przez Arkadiusz Waluk

Cześć. Ucząc się c++ wymyślam sobie

#include <iostream>
#include <string>
using namespace std;

int main()
{
    string login, haslo;
    int wynik=1 ;
    do
    {
    cout << "Witaj, podaj login i haslo aby poprawnie sie zalogowac do swojego konta" << endl
         << '\n';

    cout << "Podaj swoj login" << endl;
    getline(cin, login, '\n');
    cout << "Podaj swoje haslo" << endl;
    getline(cin, haslo, '\n');

    if (login == "kroliczek kinga" && haslo == "28021994" || haslo == "30082000")

    {
        cout << "Gratulacje, podales prawidlowy login i haslo" << endl;
        (wynik==1);
    }
    else
    {
        cout << "Bledny login badz haslo - sproboj jeszcze raz" << endl;
        (wynik==0);
    }
    while (wynik !=1);

    return 0;
}

własne zadania i tym razem wpadło mi do głowy że chce wykonać program który w koło będzie wykonywał polecenia do momentu podania prawidłowego loginu i jednego z 2 haseł. Mój kod pokazuje mi błędy. Uczę się z książki Sam ale czasami coś mi nie zadziała. Ktoś wyjaśni mi dlaczego tutaj nie działa.

2 odpowiedzi

+2 głosów
odpowiedź 27 kwietnia 2022 przez Tnifey Pasjonat (24,190 p.)
wybrane 28 kwietnia 2022 przez Arkadiusz Waluk
 
Najlepsza
do ... while  nie ma poprawnego zamknięcia {}  (klamer)

wynik == 1  w do ... while  sprawdza czy wynik jest 1 i zwraca true lub false, (nie robiąc nic poza tym)

czyli nie nadpisujesz żadnych zmiennych, a później sprawdzasz while(wynik != 1); gdzie na samym początku jest

int wynik = 1;
komentarz 28 kwietnia 2022 przez Mati323 Nowicjusz (210 p.)
Dzięki , działa wszystko ;)
+1 głos
odpowiedź 27 kwietnia 2022 przez VBService Ekspert (256,320 p.)
edycja 27 kwietnia 2022 przez VBService

Przeoczyłeś klamrę "zamykającą"  } dla bloku do {  } while();

#include <iostream>

using namespace std;

int main()
{
    string login, haslo;
    int wynik = 0 ;
    do
    {
        cout << "Witaj, podaj login i haslo aby poprawnie sie zalogowac do swojego konta"
             << "\n\n";
 
        cout << "Podaj swoj login" << endl;
        getline(cin, login, '\n');
        cout << "Podaj swoje haslo" << endl;
        getline(cin, haslo, '\n');
 
        if (login == "kroliczek kinga" && haslo == "28021994" || haslo == "30082000")
        {
            cout << "Gratulacje, podales prawidlowy login i haslo" << endl;
            wynik = 1; // Jeden znak równości, przypisanie do zmiennej wartości
        }
        else
        {
            cout << "Bledny login badz haslo - sproboj jeszcze raz" << endl;
            wynik = 0;
        }
    } // Ta klamra
    while (wynik != 1);
 
    return 0;
}

 

w tego typu pętlach możesz też używać zmiennej typu logicznego (boolean)

[ on-line ]

#include <iostream>

using namespace std;

int main()
{
    string login, haslo;
    bool wynik = false;
    do
    {
        cout << "Witaj, podaj login i haslo aby poprawnie sie zalogowac do swojego konta"
             << "\n\n";
 
        cout << "Podaj swoj login" << endl;
        getline(cin, login, '\n');
        cout << "Podaj swoje haslo" << endl;
        getline(cin, haslo, '\n');
 
        if (login == "kroliczek kinga" && haslo == "28021994" || haslo == "30082000")
        {
            cout << "Gratulacje, podales prawidlowy login i haslo" << endl;
            wynik = true;
        }
        else
        {
            cout << "Bledny login badz haslo - sproboj jeszcze raz" << endl;
        }
    }
    while (wynik != true);
 
    return 0;
}

inny prawidłowy zapis

bool zmienna = false;
do
{
    // kod
}
while (zmienna == false);

lub

bool zmienna = false;
do
{
    // kod
}
while (! zmienna);

 

Podobne pytania

0 głosów
2 odpowiedzi 312 wizyt
pytanie zadane 17 kwietnia 2021 w C i C++ przez Viltus Początkujący (300 p.)
0 głosów
1 odpowiedź 159 wizyt
pytanie zadane 1 kwietnia 2020 w C i C++ przez Ola_00 Nowicjusz (210 p.)
0 głosów
1 odpowiedź 324 wizyt
pytanie zadane 31 marca 2020 w C i C++ przez Ola_00 Nowicjusz (210 p.)

93,187 zapytań

142,201 odpowiedzi

322,012 komentarzy

62,514 pasjonatów

Advent of Code 2024

Top 15 użytkowników

  1. 2127p. - dia-Chann
  2. 2092p. - Łukasz Piwowar
  3. 2079p. - Łukasz Eckert
  4. 2037p. - Tomasz Bielak
  5. 2006p. - Michal Drewniak
  6. 2006p. - rucin93
  7. 2005p. - Łukasz Siedlecki
  8. 1964p. - CC PL
  9. 1946p. - Adrian Wieprzkowicz
  10. 1901p. - Mikbac
  11. 1744p. - rafalszastok
  12. 1734p. - Anonim 3619784
  13. 1586p. - Dawid128
  14. 1520p. - Marcin Putra
  15. 1480p. - ssynowiec
Szczegóły i pełne wyniki

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!

...