Switch wykonuje wszystkie Case'y
Ostatnio zmodyfikowano 2017-02-24 09:13
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? #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; } } |
|
carlosmay |
» 2017-02-23 22:41:14 |
|
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.
|
|
« 1 » |