Daedra Temat założony przez niniejszego użytkownika |
Problem z Instrukcjami warunkowymi » 2013-06-28 16:26:34 Ostatnio chciałem poćwiczyć sobie pisane instrukcji warunkowych, ale chyba nie do końca je rozumiem... Czy ktoś jest w stanie powiedzieć co piszę źle? :) #include <iostream> int main() { int s; int n; int zmienna; std::cout << "Idziesz do szkoly w srode czy niedziele?\nJesli w srode napisz S\nJesli w niedziele napisz N" << std::endl; std::cin >> s; std::cin >> n; if( s ) { std::cout << "Idziesz na lekcje w srode"; zmienna = 1; } else if( n ) { std::cout << "W niedziele nie ma lekcji"; zmienna = 0; } } |
|
pekfos |
» 2013-06-28 16:28:17 Zamiast znaku wczytujesz 2 inty, a w warunkach sprawdzasz, czy są niezerowe. |
|
Geniusz |
» 2013-06-28 16:51:59 Kiepsko ogarniasz instrukcje warunkowe. Kod pomiędzy "{" i "}" wykona się wtedy jeśli warunek w if będzie spełniony i przyjmie wartość true, czyli wtedy gdy zmienna "s" będzie różna od zera. if( s ) { std::cout << "Idziesz na lekcje w srode"; zmienna = 1; }
Po kodzie od razu widać, że sam do końca nie rozumiesz tego, co piszesz. Program, który planujesz napisać, łatwo wykonnać za pomocą jednej zmiennej typu char, której wartość określasz za pomocą strumienia wejściowego ( cin >> zmienna ) i warunku wielokrotnego wyboru switch ... case. |
|
Daedra Temat założony przez niniejszego użytkownika |
» 2013-06-28 16:55:53 Poprawiłem tak i już działa tak jak miał działać: #include <iostream> int main() { int s; int zmienna; std::cout << "Idziesz do szkoly w srode czy niedziele?\nJesli w srode napisz 0\nJesli w niedziele napisz 1" << std::endl; std::cin >> s; if( s <= 0 ) { std::cout << "Idziesz na lekcje w srode" << std::endl; zmienna = 0; } else { std::cout << "Idziesz na lekcje w niedziele" << std::endl; zmienna = 1; } } Nie ogarniam jeszcze do końca tematu, dopiero się uczę, mam nadzieję że z czasem będzie lepiej ;) |
|
pekfos |
» 2013-06-28 16:59:11 Zmienna zmienna jest tu niepotrzebna, a te warunki mogą być bardziej konkretne: if( s == 0 ) { } else if( s == 1 ) { } else { } |
|
Daedra Temat założony przez niniejszego użytkownika |
» 2013-06-28 19:15:44 Faktycznie, a co do warunków faktycznie są konkretniejsze co mi się podoba :) Lecz mam jedno pytanko, czemu wszędzie jest dwa razy równa się o tak np. ,, ( s==0 ) '' Nie wystarczy jedno = się?
Dodam że gdy jest tylko jedno = się, to program działa źle. Dając 0 zamiast środy mam niedziele, niby dając 1 mam niedziele a to jest poprawne, lecz nie rozumiem czemu dzieje się tak w przypadku 0 ? |
|
pekfos |
» 2013-06-28 19:17:12 Jedno = to przypisanie, a nie porównanie. |
|
Daedra Temat założony przez niniejszego użytkownika |
» 2013-06-28 19:19:39 Przepraszam za te nawet bym powiedział głupkowate tematy, muszę zacząć lepiej szukać zamiast zadawać takie pytania, praktycznie wszystko jest w internecie i na waszej stronie. Przepraszam za kłopot i dziękuję za udzieloną pomoc, problem rozwiązany ;) |
|
« 1 » |