error: jump to case label; error: crosses initialization of `int wybor2';
Ostatnio zmodyfikowano 2008-10-14 23:47
kuzdo Temat założony przez niniejszego użytkownika |
error: jump to case label; error: crosses initialization of `int wybor2'; » 2008-10-14 23:04:26 Witam. Mam problem i nie wiem o co chodzi. Oto kod programu: #include <iostream> #include <conio.h> #include <math.h> #include "console.ddt" using namespace ddt::console; using namespace std; int main() { int wybor = 10; while( wybor != 0 ) { clrscr(); cout << "Witam w Kalkulatorze ver. 0.1" << endl; cout << "Menu: [1] Dodawanie. [2] Odejmowanie." << endl; cout << " [3] Mnożenie. [4] Dzielenie." << endl; cout << " [5] Potegowanie. [6] Pierwiastkowanie." << endl; cout << " [7] Wiecej..." << endl; cout << " [0] Koniec. [9] Autor." << endl; cin >> wybor; switch( wybor ) { case 9: clrscr(); cout << "Witam w Kalkulatorze ver. 0.1" << endl; cout << " [9] Autor." << endl << endl; cout << "Imie i Nazwisko: Przemyslaw 'Kuzdo' K." << endl; cout << "WWW: www.kuzdo.net" << endl; break; case 1: clrscr(); cout << "Witam w Kalkulatorze ver. 0.1" << endl; cout << " [1] Dodawanie." << endl; int liczba11, liczba12; cout << endl << "Prosze podac pierwsza liczbe:" << endl; cin >> liczba11; cout << "Prosze podac druga liczbe:" << endl; cin >> liczba12; cout << "Wynik to:" << liczba11 + liczba12 << endl; break; case 2: clrscr(); cout << "Witam w Kalkulatorze ver. 0.1" << endl; cout << " [2] Odejmowanie." << endl; int liczba21, liczba22; cout << endl << "Prosze podac pierwsza liczbe:" << endl; cin >> liczba21; cout << "Prosze podac druga liczbe:" << endl; cin >> liczba22; cout << "Wynik to:" << liczba21 - liczba22 << endl; break; case 3: clrscr(); cout << "Witam w Kalkulatorze ver. 0.1" << endl; cout << " [3] Mnozenie." << endl; int liczba31, liczba32; cout << endl << "Prosze podac pierwsza liczbe:" << endl; cin >> liczba31; cout << "Prosze podac druga liczbe:" << endl; cin >> liczba32; cout << "Wynik to:" << liczba31 * liczba32 << endl; break; case 4: clrscr(); cout << "Witam w Kalkulatorze ver. 0.1" << endl; cout << " [4] Dzielenie." << endl; int liczba41, liczba42; cout << endl << "Prosze podac pierwsza liczbe:" << endl; cin >> liczba41; cout << "Prosze podac druga liczbe:" << endl; cin >> liczba42; cout << "Wynik to:" << liczba41 / liczba42 << endl; break; case 5: clrscr(); cout << "Witam w Kalkulatorze ver. 0.1" << endl; cout << " [5] Potegowanie." << endl; int liczba5, potega5; cout << endl << "Prosze podac liczbe:" << endl; cin >> liczba5; cout << "Prosze podac potege:" << endl; cin >> potega5; cout << "Wynik to:" << pow( liczba5, potega5 ) << endl; break; case 6: clrscr(); cout << "Witam w Kalkulatorze ver. 0.1" << endl; cout << " [6] Pierwiastkowanie." << endl; int liczba6, pierwiastek6; cout << endl << "Prosze podac liczbe:" << endl; cin >> liczba6; cout << "Prosze podac pierwiastek (z zakonczeniem '.0' np. '2.0'):" << endl; cin >> pierwiastek6; cout << "Wynik to:" << pow( liczba6,( 1 / pierwiastek6 ) ) << endl; break; case 7: clrscr(); int wybor2 = 10; cout << "Witam w Kalkulatorze ver. 0.1" << endl; cout << " [7] Wiecej." << endl << endl; cout << "Menu: [1] Stopnie na radiany." << endl; cout << " [2] Radiany na stopnie." << endl; cout << " [3] Sinus." << endl; cout << " [4] Cosinus." << endl; cout << " [5] Tangens." << endl; cout << " [6] Logarytm naturalny." << endl; cout << " [7] Logarytm - podstawa 10." << endl; cout << " [8] Wroc do menu." << endl; cin >> wybor2; switch( wybor2 ) { case 1: clrscr(); cout << "Witam w Kalkulatorze ver. 0.1" << endl; cout << " [7.1] Stopnie na radiany." << endl; double stopnie71; cout << endl << "Prosze podac kat w stopniach:" << endl; cin >> stopnie71; cout << stopnie71 << " stopnie = " <<( stopnie71 * M_PI ) / 180.0f << " radiany" << endl; break; case 2: clrscr(); cout << "Witam w Kalkulatorze ver. 0.1" << endl; cout << " [7.2] Radiany na stopnie." << endl; double rad72; cout << endl << "Prosze podac kat w radianach:" << endl; cin >> rad72; cout << rad72 << " radiany = " <<( rad72 * 180 ) / M_PI << " stopnie" << endl; break; case 3: clrscr(); cout << "Witam w Kalkulatorze ver. 0.1" << endl; cout << " [7.3] Sinus." << endl; double kat73; cout << endl << "Prosze podac kat w radianach:" << endl; cin >> kat73; cout << "Sinus kata " << kat73 << " wynosi " << sin( kat73 ) << endl; break; case 4: clrscr(); cout << "Witam w Kalkulatorze ver. 0.1" << endl; cout << " [7.4] Cosinus." << endl; double kat74; cout << endl << "Prosze podac kat w radianach:" << endl; cin >> kat74; cout << "Cosinus kata " << kat74 << " wynosi " << cos( kat74 ) << endl; break; case 5: clrscr(); cout << "Witam w Kalkulatorze ver. 0.1" << endl; cout << " [7.5] Tangens." << endl; double kat75; cout << endl << "Prosze podac kat w radianach:" << endl; cin >> kat75; cout << "Tangens kata " << kat75 << " wynosi " << tan( kat75 ) << endl; break; case 6: clrscr(); cout << "Witam w Kalkulatorze ver. 0.1" << endl; cout << " [7.6] Logarytm naturalny." << endl; double liczba76; cout << endl << "Prosze podac liczbe:" << endl; cin >> liczba76; cout << "Logarytm liczby " << liczba76 << " wynosi " << log( liczba76 ) << endl; break; case 7: clrscr(); cout << "Witam w Kalkulatorze ver. 0.1" << endl; cout << " [7.7] Logarytm - podstawa 10." << endl; double liczba77; cout << endl << "Prosze podac liczbe:" << endl; cin >> liczba77; cout << "Logarytm o podstawie 10 liczby " << liczba77 << " wynosi " << log10( liczba77 ) << endl; break; case 8: clrscr(); break; default: clrscr(); cout << "Witam w Kalkulatorze ver. 0.1" << endl; cout << "ERROR: Nie ma takiej funkcji! Wracam do menu." << endl; break; } case 0: clrscr(); cout << "Witam w Kalkulatorze ver. 0.1" << endl << endl; cout << "Dziękuję za skorzystanie z mojego kalkulatora." << endl; break; default: clrscr(); cout << "Witam w Kalkulatorze ver. 0.1" << endl << endl; cout << "ERROR: Nie ma takiej funkcji! Wracam do menu." << endl; break; } getch(); return( 0 ); }
A oto log kompilacji: Kompilator: Default compiler Wykonywanie g++.exe... g++.exe "D:\C++\calc.cpp" -o "D:\C++\calc.exe" -g3 -I"C:\Dev-Cpp\lib\gcc\mingw32\3.4.2\include" -I"C:\Dev-Cpp\include\c++\3.4.2\backward" -I"C:\Dev-Cpp\include\c++\3.4.2\mingw32" -I"C:\Dev-Cpp\include\c++\3.4.2" -I"C:\Dev-Cpp\include" -L"C:\Dev-Cpp\lib" -g3 D:\C++\calc.cpp: In function `int main()': D:\C++\calc.cpp:183: error: jump to case label D:\C++\calc.cpp:97: error: crosses initialization of `int wybor2' D:\C++\calc.cpp:188: error: jump to case label D:\C++\calc.cpp:97: error: crosses initialization of `int wybor2' D:\C++\calc.cpp:196: error: expected `}' at end of input Wykonanie zakończone Z góry dziękuję za pomoc w ustaleniu problemu. //edit: Mógłby ktoś też napisać, czy kod jest dobry, czy może za dużo tego wszystkiego i można byłoby to łatwiej i szybciej zapisać. |
|
DejaVu |
» 2008-10-14 23:07:26 10 min temu podobny był problem rozwiązany: switch(...) { case...: { } break; case...: { } break; }
Dopisanie klamr jest potrzebne w case wtedy, gdy deklarujesz zmienne wewnątrz case'a. |
|
kuzdo Temat założony przez niniejszego użytkownika |
» 2008-10-14 23:09:31 A to w takim razie przepraszam, ale nie wiedziałem o tych klamrach bo:
"VIII. Warunek wielokrotnego wyboru switch ... case"
W przykładach case jest bez klamer. |
|
DejaVu |
» 2008-10-14 23:11:53 [WWW-TODO]: Rozbudować lekcję kursu switch ... case o informacje zawarte w tym temacie. |
|
kuzdo Temat założony przez niniejszego użytkownika |
» 2008-10-14 23:47:51 |
|
« 1 » |