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

Jak przerwać jednego switcha przed drugim?

42 Warsaw Coding Academy
0 głosów
293 wizyt
pytanie zadane 28 lipca 2015 w C i C++ przez Skoroś Rose Nowicjusz (170 p.)
Obejrzałem świetny odcinek o stosowaniu funkcji. Na podstawie tego oraz kilku innych odcinków chciałem stworzyć program, wykorzystujący wcześniej poznaną wiedzę. Niestety nie potrafię zrobić, by program przerywał jednego switcha i wrócił do początku, gdy ktoś naciśnie znak nieprzypisany do żadnej funkcji. W efekcie program wywala jeden błąd, a następnie przechodzi do "kalkulatora".

 

Kod programu: http://wklej.org/id/1764319/

2 odpowiedzi

+1 głos
odpowiedź 28 lipca 2015 przez nowyfolder Mądrala (7,250 p.)
wybrane 28 lipca 2015 przez Skoroś Rose
 
Najlepsza

Prostym sposobem na poradzenie sobie z tym problemem byłoby zamknięcie switcha w pętli do...while:
 

do{
    cout << "1. Zapisywanie Twoich danych do pliku tekstowego" << endl;
    cout << "2. Obliczanie sredniej" << endl;
    cout << "3. A takze funkcje kalkulatora: " << endl;
    cout << "a) Dodawanie" << endl;
    cout << "b) Odejmowanie" << endl;
    cout << "c) Mnozenie" << endl;
    cout << "d) Dzielenie" << endl;
    cout << "4. Wyjscie" << endl;
    cout << "Podaj cyfre, od jeden do cztery: " << endl;
   wybor=getch();
    {
                switch (wybor)
        {
        case '1': system ("cls");informacje();
                   cout<<"Czy chcesz tez policzyc srednia? Odpowiedz TAK lub NIE. ";
                   cin>> odpowiedz;
                   transform(odpowiedz.begin(), odpowiedz.end(), odpowiedz.begin(), ::tolower);
                   if    (odpowiedz=="nie")
                   {
                       system ("cls");
                       cout <<"Wiec tego nie zrobie. Powrot do programu";
                       break;
                   }
                   if (odpowiedz=="tak")
                   {
                        case '2': system ("cls");sredniaocen ();                  break;
                   }
        case '3': system ("cls");
        cout <<"Witaj w kalkulatorze. Wybierz jedno dzialanie i podazaj za instrukcjami na ekranie: "<<endl;
        cout << "a) Dodawanie" << endl;
        cout << "b) Odejmowanie" << endl;
        cout << "c) Mnozenie" << endl;
        cout << "d) Dzielenie" << endl;                            break;
        case '4': exit (0);                      break;
        default: cout <<"Nie ma takiej opcji w menu! "; getchar(); break;
                }
}while(wybor < '1' || wybor >'4');


W ten sposób jesli użytkownik poda inny znak niż 1..4, to warunek pętli do...while będzie spełniony, i program wróci do początku

komentarz 28 lipca 2015 przez Skoroś Rose Nowicjusz (170 p.)
Dziękuję ślicznie za pomoc. :)
komentarz 28 lipca 2015 przez niezalogowany
Słuchaj, ja ci tak tylko podpowiem Skoroś: jak ktoś ci pomoże na forum i ta odpowiedź będzie poprawna i (według ciebie najlepsza), to klikaj tego szarego ptaszka pod licznikiem łapek w górę i w dół tej odpowiedzi. Zrobiło się zielone? No to super, właśnie zaznaczyłeś tę odpowiedź jako najlepszą a użytkownik dostał w nagrodę dużo punktów ;)
komentarz 28 lipca 2015 przez Skoroś Rose Nowicjusz (170 p.)
Już zrobiłem. Dziękuję jeszcze raz. :)
komentarz 28 lipca 2015 przez niezalogowany
No widzisz! I od razu mu się milej zrobiło ;)
0 głosów
odpowiedź 28 lipca 2015 przez Dorion300 Szeryf (90,250 p.)
Może pętla do_while?

Podobne pytania

+1 głos
1 odpowiedź 634 wizyt
pytanie zadane 15 listopada 2017 w C i C++ przez Kamil Kukła Nowicjusz (160 p.)
+2 głosów
0 odpowiedzi 97 wizyt
0 głosów
0 odpowiedzi 109 wizyt
pytanie zadane 11 września 2023 w Sieci komputerowe, internet przez lkd3n Nowicjusz (120 p.)

93,377 zapytań

142,379 odpowiedzi

322,528 komentarzy

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

VMware Cloud PRO - przenieś swoją infrastrukturę IT do chmury
...