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

Switch wykonuje wszystkie Case'y

Ostatnio zmodyfikowano 2017-02-24 09:13
Autor Wiadomość
Rainbow
Temat założony przez niniejszego użytkownika
Switch wykonuje wszystkie Case'y
» 2017-02-23 22:29:15
Tworząc część kodu (prosty system wyboru opcji na switch'u) dla większego programu w osobnym pliku natknęłam się na problem. Otóż gdy uruchamiałam poniższy kod i klikałam strzałkę w dół (jeszcze przed dodaniem wyłączenia pętli przy Enterze) kod działał dobrze, przynajmniej tak mi się wydawało, dopóki nie wcisnęłam strzałki w górę. Wtedy została wykonana instrukcja dla strzałki w górę i dla strzałki w dół, po dodaniu wyłączenia przy Enterze okazało się, że ta instrukcja też była wykonywana za każdym razem, co oznacza, że Switch z jakiegoś powodu realizuje wybraną opcję i każdą, która w kodzie jest po niej. Ma ktoś pomysł co może być nie tak?

C/C++
#include<conio.h>
#include <iostream>
#include <windows.h>

using namespace std;
int getch( void );
char Wybor( int opcja )
{
    system( "cls" );
    cout << "Wybierz wielkosc planszy" << endl;
    if( opcja == 1 ) cout << "    > Mala (20x10) <" << endl;
    else cout << "      Mala (20x10)" << endl;
   
    if( opcja == 2 ) cout << "   > Srednia (40x20) <" << endl;
    else cout << "     Srednia (40x20)" << endl;
   
    if( opcja == 3 ) cout << "    > Duza (75x30) <" << endl;
    else cout << "      Duza (75x30)" << endl;
   
}
int main()
{
    int opcja = 1;
    char znak;
    int koniec = 0;
    while( 1 )
    {
        Wybor( opcja );
        znak = getch();
        switch( znak )
        {
        case 72:
            if( opcja == 1 ) opcja = 3;
            else opcja--;
           
            Wybor( opcja );
        case 80:
            if( opcja == 3 ) opcja = 1;
            else opcja++;
           
            Wybor( opcja );
        case 13:
            system( "cls" );
            koniec = 1;
            break;
        }
        if( koniec == 1 ) break;
       
    }
}
P-158228
carlosmay
» 2017-02-23 22:41:14
Nie ma słowa
break
.
» Kurs C++ » Poziom 1Warunek wielokrotnego wyboru switch ... case lekcja
P-158230
polepszacz
» 2017-02-24 09:13:12
Funkcja Wybor

"
char Wybor( int opcja )
"

jest typu znakowego. Musi być jej  nadana jawnie
wartość słowem kluczowym return.

P-158248
« 1 »
  Strona 1 z 1