Bohaterowicz Temat założony przez niniejszego użytkownika |
Powtarzanie switcha w pętli » 2013-07-30 22:51:49 Tytuł dość dobrze opisuje mój problem, lecz wytłumaczę go dokładnie. Otóż napisałem mały kalkulator który sam w sobie działa, lecz jako że każdy (chyba) lubi dążyć do perfekcji chciałbym by switch w którym wybiera się rodzaj działania powtarzał się za każdym razem gdy wpisze się zły numer wyboru, lub działanie się wykona. Poniżej przykładowy kod jak to wygląda (nie chce wklejać oryginalnego kodu bo to zajęło by dużo miejsca)
Switch(wybor) case 1 dodawanie case 2 odejmowanie case 3 mnozenie case 4 dzielenie case 5 wyjscie
w skrócie: gdzie powinienem umieścić pętle i jak ją uargumentować tak by program nie kończył się za każdym razem gdy wybierze się zły numer, lub działanie się wykona. Jeśli będzie trzeba to umieszczę cały kod. |
|
MrPoxipol |
» 2013-07-30 23:17:13 bool powtarzaj = true; while( powtarzaj ) { switch( foo ) { case 1: powtarzaj = false; break; } } |
|
damian19dk |
» 2013-07-30 23:18:46 Switcha umieść w pętli (np.: do-while) z warunkiem ( wybor != 5). W switchu umieść jeszcze default: na złą liczbę np.: 11. Myślę, że to powinno pomóc... Sorry, że tak późno piszę. EDIT: do { Switch( wybor ) case 1 : dodawanie(); break; case 2: odejmowanie(); break; case 3: mnozenie(); break; case 4: dzielenie(); break; case 5: wyjscie(); break; default: std::cout << "Zły wybór..." << std::endl; break; } while( wybor != 5 )
|
|
Bohaterowicz Temat założony przez niniejszego użytkownika |
» 2013-07-30 23:38:00 Panowie, wielkie dzięki za próbe pomocy, lecz nauke C++ zacząłem dzisiaj rano więc rozumiem tylko podstawowe podstawy. MrPoxipol, choć naprawde się starałem zrozumieć to co napisałeś to nie mam zielonego pojęcia o co chodzi w tym kodzie, ani jak miał bym go zaimplementować do mojego programu. damian19dk Próbowałem coś z tym zorbić, ale chyba też nie do końca rozumiem, przez co nie wiem jak to zastosować. Postanowiłem zamieścić kod byście mogli mi dokładnie pokazać jak to powinno wyglądać, bo próbowałem już wiele sposobów i choć większość przechodziło próbe kompilacji to gdy wpisywałem złą liczbe to program tak jakby się zawieszał :( int main() { double x, y; int wyb; cout << "Jakie obliczenie chcesz wykonac?" << endl; cout << "1. Dodawanie \n2. Odejmowanie \n3. Mnozenie \n4. Dzielenie \n5 Wyjscie" << endl; cin >> wyb; switch( wyb ) { case 1: cout << "Podaj pierwsza liczbe: " << endl; cin >> x; cout << "Podaj druga liczbe: " << endl; cin >> y; cout << "Wynik to: " << dodaj( x, y ); cin.get(); break; case 2: cout << "Podaj pierwsza liczbe: " << endl; cin >> x; cout << "Podaj druga liczbe: " << endl; cin >> y; cout << "Wynik to: " << odjac( x, y ); cin.get(); break; case 3: cout << "Podaj pierwsza liczbe: " << endl; cin >> x; cout << "Podaj druga liczbe: " << endl; cin >> y; cout << "Wynik to: " << mnozyc( x, y ); cin.get(); break; case 4: cout << "Podaj pierwsza liczbe: " << endl; cin >> x; cout << "Podaj druga liczbe: " << endl; cin >> y; cout << "Wynik to: " << dzielic( x, y ); cin.get(); break; case 5: return 0; } cin.get(); return 0; }
PS: sposoby wykonywania działań umieściłem w innych funkcjach bo bardzo spodobał mi się ten sposób. |
|
damian19dk |
» 2013-07-30 23:42:51 Tak na przyszłość(nie żeby coś), kod zamieszczaj w znacznikach [ cpp ][ /cpp ] a nie <cpp></cpp>, ale tym się nie przejmuj... Teraz pytanie: czy chcesz, żebyśmy napisali ci poprawny kod, czy też wyjaśnili? Bo na twoim etapie nauki programowania z wyjaśnieniem może być nie najlepiej :) |
|
Bohaterowicz Temat założony przez niniejszego użytkownika |
» 2013-07-30 23:48:07 najlepiej byś napisał kod, ( jak byś mógł to wyjaśnij najważniejsze rzeczy) popatrzę na niego trochę to może sam dojdę co robiłem źle. |
|
damian19dk |
» 2013-07-30 23:55:52 Niektórzy mówią, że to podanie ryby, a nie wędki, ale co mi tam. Oto kod (powinno działać): int main() { double x, y; int wyb; cout << "Jakie obliczenie chcesz wykonac?" << endl; do { cout << "1. Dodawanie \n2. Odejmowanie \n3. Mnozenie \n4. Dzielenie \n5 Wyjscie" << endl; cin >> wyb; switch( wyb ) { case 1: cout << "Podaj pierwsza liczbe: " << endl; cin >> x; cout << "Podaj druga liczbe: " << endl; cin >> y; cout << "Wynik to: " << dodaj( x, y ); cin.get(); break; case 2: cout << "Podaj pierwsza liczbe: " << endl; cin >> x; cout << "Podaj druga liczbe: " << endl; cin >> y; cout << "Wynik to: " << odjac( x, y ); cin.get(); break; case 3: cout << "Podaj pierwsza liczbe: " << endl; cin >> x; cout << "Podaj druga liczbe: " << endl; cin >> y; cout << "Wynik to: " << mnozyc( x, y ); cin.get(); break; case 4: cout << "Podaj pierwsza liczbe: " << endl; cin >> x; cout << "Podaj druga liczbe: " << endl; cin >> y; cout << "Wynik to: " << dzielic( x, y ); cin.get(); break; case 5: return 0; } } while( wyb != 5 ) cin.get(); return 0; }
EDIT: Umieszczasz to co potrzebne w pętli, która działa, póki wykonuje się warunek (czyli dopóki wyb NIE JEST równy 5). Jeśli wyb = 5 to pętla się kończy i wszystko jest cacy! EDIT2: Wielkich zmian tam nie ma, ale jaki efekt... |
|
MrPoxipol |
» 2013-07-31 00:01:58 Ogólnie to Kurs C++ i po jakimś czasie będziesz już sam wiedział co i jak. @up tu nie podajemy gotowców, niech człowiek sam pomyśli. |
|
« 1 » 2 |