Rozdział 14 - zadanie domowe
Ostatnio zmodyfikowano 2018-11-04 16:26
rottingham Temat założony przez niniejszego użytkownika |
Rozdział 14 - zadanie domowe » 2018-10-30 18:23:00 W zadaniu domowym z rozdziału 14 mieliśmy napisać program: 1. Wykonujący cztery rodzaje działań arytmetycznych 2. Z wykorzystaniem nowo poznanej instrukcji switch. Napisałem program, który wyrzuca odpowiedni tekst na ekran w zależności czy wynik, któregoś z obliczeń wynosi 7. I gdy case wynosi 1 to przechodzi on do instrukcji warunkowej if. Teraz zasadnicze pytania. Czy można umiejscawiać instrukcję "if" w instrukcji "switch" - tzn. czy to w przyszłości mi się przyda czy raczej "nie mieszać" sobie w głowie. Czy dobrze zamknąłem case1 tzn. czy "break" jest w odpowiedniej pozycji? Czy z moim poziomem wiedzy (skończyłem ledwie poziom 1) da się ten program napisać prościej/lepiej? Pozdrawiam! #include <iostream> using namespace std; int main() { int a; int b; cout << "Podaj dwie liczby calkowite "; cin >> a; cin >> b; cout << "\nWynik dodawania " << a + b << endl; int dodawanie; dodawanie =( a + b ); cout << "Wynik odejmowania " << a - b << endl; int odejmowanie; odejmowanie =( a - b ); cout << "Wynik mnozenia " << a * b << endl; int mnozenie; mnozenie = a * b; cout << "Wynik dzielenia " << a / b << endl; int dzielenie; dzielenie = a / b; bool wynik; wynik =( a + b ) == 7 ||( a - b ) == 7 ||( a * b ) == 7 ||( a / b ) == 7; switch( wynik ) { case 0: cout << "Nie miales szczescia!"; break; { case 1: cout << "\nSzczesciarz z Ciebie! Trafiles siodemke"; if( dodawanie == 7 ) { cout << " w dodawaniu!" << endl; } if( odejmowanie == 7 ) { cout << " w odejmowaniu!" << endl; } if( mnozenie == 7 ) { cout << " w mnozeniu!" << endl; } if( dzielenie == 7 ) { cout << " w dzieleniu!" << endl; } break; } } return 0; }
|
|
pekfos |
» 2018-10-30 20:16:51 Czy można umiejscawiać instrukcję "if" w instrukcji "switch" - tzn. czy to w przyszłości mi się przyda czy raczej "nie mieszać" sobie w głowie. |
W switch możesz umiejscawiać kod. if, kolejny switch, cokolwiek. Czy dobrze zamknąłem case1 tzn. czy "break" jest w odpowiedniej pozycji? | break zawsze jest na odpowiedniej pozycji, nawet jeśli nie ma go w ogóle. Czy z moim poziomem wiedzy (skończyłem ledwie poziom 1) da się ten program napisać prościej/lepiej? |
Zamiast tego switch wystarczyłoby if else. Zmienna bool wynik jest niepotrzebna. switch przyjmuje wyrażenie, nie zmienną. Wyrażenie może być zmienną, ale może też być całym tym warunkiem, którym wyznaczyłeś wartość wynik. Ale gdybyś z jakiegoś powodu potrzebował tej zmiennej, to lepiej jest utworzyć ją i nadać wartość za jednym razem - jest krócej i nie mniej czytelnie. bool wynik =( a + b ) == 7 ||( a - b ) == 7 ||( a * b ) == 7 ||( a / b ) == 7;
|
|
rottingham Temat założony przez niniejszego użytkownika |
» 2018-11-04 16:26:31 Dzięki za pomoc!
Temat do zamknięcia. |
|
« 1 » |