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

Nie działająca instrukcja switch.

Ostatnio zmodyfikowano 2016-07-21 17:41
Autor Wiadomość
teraz101
Temat założony przez niniejszego użytkownika
Nie działająca instrukcja switch.
» 2016-07-21 14:33:20
Witam. W programie, który próbuję napisać, mam problem z instrukcją switch. Nie działa ona tak jak powinna, a właściwie, to w ogóle nie dizała. Jestem początkujący. Może to błahy problem dla Was, ale nie wiem co zrobić, żeby program działał dobrze.
Jest to ćwiczenie z książki Stephena Praty : Napisz szkielet programu sterowanego z menu. Program ten powinien pokazywać menu zawierające dostępne opcje, każda z nich ma być oznaczona literą. Kiedy użytkownik poda literę inną niż jedna z czterech dopuszczalnych, program ma żądać podania poprawnej wartości tak długo, aż użytkownik spełni to żądanie.Następnie za pomocą instrukcji switch program ma podjąć proste działanie zależne od wyboru użytkownika. Po uruchomieniu program może dać na przykład takie wyniki:
r)     roślinożerca               p) pianista
d)     drzewo                     g) gra
Proszę podać literę r, p, t lub g: q
Proszę podać literę r, p, t lub g: d
Klon jest drzewem.
I ja właśnie posłużyłem się tym przykładem jw.
A oto mój kod:
C/C++
#include <iostream>
using namespace std;
void showmenu();

int main()

{
    showmenu();
    int choice;
    cout << "Prosze podac litere r, p, d lub g:";
    cin >> choice;
    while( choice == 'r' || choice == 'p' || choice == 'd' || choice == 'g' )
    {
        switch( choice )
        {
        case 'r': cout << "Daniel jest roslinozerca.\n";
            break;
        case 'p': cout << "Claudio Arrau jest pianista.\n";
            break;
        case 'd': cout << "Dąb jest wysokim drzewem.\n";
            break;
        case 'g': cout << "FIFA 16 to świetna gra.\n";
            break;
        default: cout << "Prosze podac litere r, p, t lub g:" << endl;
            break;
        }
        cin >> choice;
    }
   
}
void showmenu()
{
    cout << "r) roslinozerca         p) pianista\n";
    cout << "d) drzewo               g) gra\n";
}


                                                                           
 
P-150172
Monika90
» 2016-07-21 14:36:56
zmienna choice powinna być typu char
P-150173
darko202
» 2016-07-21 14:37:47
zmień typ dla zmiennej "choise"

char choice;

P-150174
teraz101
Temat założony przez niniejszego użytkownika
» 2016-07-21 14:42:25
A dlaczego nie działa default? Możecie jeszcze "rzucić na to okiem"?
P-150175
Monika90
» 2016-07-21 14:48:12
Z powodu warunku pętli while, jej ciało nie zostanie wykonane gdy litera nie jest jedną z: r,p,d,g
P-150176
teraz101
Temat założony przez niniejszego użytkownika
» 2016-07-21 15:16:16
Już zrobiłem tak, że pojawia mi się komunikat, tylko jak wpisuję literę r, p, t lub g wywala mi ekran.
P-150177
mateczek
» 2016-07-21 16:24:51
coś takiego chciałeś ??
C/C++
#include <iostream>
#include<limits>

using namespace std;
void showmenu();

int main()

{
    showmenu();
    char choice;
    cout << "Prosze podac litere r, p, d lub g:";
   
    //pętla while - póki wczytanie sie niepowiedzie lub wczytano z poza przedziału
    while((( cin >> choice ) == false ) ||( choice != 'r' && choice != 'p' && choice != 'd' && choice != 'g' ) )
    {
        cout << "zly wybor poonow probe" << endl;
        cin.clear();
        cin.ignore( std::numeric_limits < std::streamsize >::max(), '\n' );
       
    }
   
    switch( choice )
    {
    case 'r': cout << "Daniel jest roslinozerca.\n";
        break;
    case 'p': cout << "Claudio Arrau jest pianista.\n";
        break;
    case 'd': cout << "Dąb jest wysokim drzewem.\n";
        break;
    case 'g': cout << "FIFA 16 to świetna gra.\n";
        break;
    }
   
   
}
void showmenu()
{
    cout << "r) roslinozerca         p) pianista\n";
    cout << "d) drzewo               g) gra\n";
}
P-150179
teraz101
Temat założony przez niniejszego użytkownika
» 2016-07-21 17:31:47
Tak, coś takiego. A czy mógłbyś mi jeszcze powiedzieć, gdzie popełniłem błąd? Bo ja próbowałem napisać tak, żeby mi wypisywało polecenie do momentu, gdy poda się literę p, r , d lub g.
P-150183
« 1 » 2
  Strona 1 z 2 Następna strona