Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Jak to zapętlić

Ostatnio zmodyfikowano 2014-03-15 17:06
Autor Wiadomość
Maniek974
Temat założony przez niniejszego użytkownika
Jak to zapętlić
» 2014-03-15 12:28:43
Witam

Mam pewien problem a mianowicie nie wiem jak to zapętlić:

C/C++
#include <iostream>
int main()
{
   
    std::cout << "Wybierz liczbe od 1 do 5: ";
   
    int liczba;
    std::cin >> liczba;
    std::cout << "\n";
   
    switch( liczba )
    {
    case 1:
        std::cout << "Wybrales 1 \n";
        break;
       
    case 2:
        std::cout << "Wybrales 2 \n";
        break;
       
    case 3:
        std::cout << "Wybrales 3 \n";
        break;
       
    case 4:
        std::cout << "Wybrales 4 \n";
        break;
       
    case 5:
        std::cout << "Wybrales 5 \n";
        break;
       
    default:
        std::cout << "Wybrales zla liczbe. Sprobuj ponownie.";
        std::cout << "\n";
        break;
    }
    if( liczba <= 5 )
    {
        std::cout << "Wybrales prawidlowa liczbe :) \n";
    }
   
}

Chodzi mi o ten kawałek
C/C++
default:
std::cout << "Wybrales zla liczbe. Sprobuj ponownie.";
std::cout << "\n";
break;

Jak to zapętlić żebym mógł znowu wybrać liczbę? Myślałem o zastosowaniu tu pętli do while ale nie wiem jak jej tu użyć.
P-106402
pekfos
» 2014-03-15 13:30:32
Wstaw switch i pobieranie liczby w pętlę nieskończoną, dopisz na koniec pętli break, a w default zmień break na continue.
P-106412
Maniek974
Temat założony przez niniejszego użytkownika
» 2014-03-15 13:42:26
Zrobiłem tak:

C/C++
#include <iostream>
int main()
{
   
    std::cout << "Wybierz liczbe od 1 do 5:";
   
    int liczba;
    while( true )
    {
        std::cin >> liczba;
        std::cout << "\n";
       
        switch( liczba )
        {
        case 1:
            std::cout << "Wybrales 1 \n";
            break;
           
        case 2:
            std::cout << "Wybrales 2 \n";
            break;
           
        case 3:
            std::cout << "Wybrales 3 \n";
            break;
           
        case 4:
            std::cout << "Wybrales 4 \n";
            break;
           
        case 5:
            std::cout << "Wybrales 5 \n";
            break;
           
        default:
            std::cout << "Wybrales zla liczbe. Sprobuj ponownie.";
            std::cout << "\n";
            continue;
        }
        if( liczba <= 5 )
        {
            std::cout << "Wybrales prawidlowa liczbe :) \n";
            break;
        }
    }
   
}

I mam to czego chciałem. Teraz tylko pytanie czy kod wymaga jakieś optymalizacji. Wymaga?
P-106415
pekfos
» 2014-03-15 17:06:57
Tu nie ma czego optymalizować. Co najwyżej można wywalić ostatniego ifa. Jak wyjdziesz z pętli to i tak będziesz miał prawidłową liczbę.
P-106458
« 1 »
  Strona 1 z 1