Lekcja 1 Rozdział 2 Zadanie 1
Ostatnio zmodyfikowano 2015-07-19 20:16
Programista1221 Temat założony przez niniejszego użytkownika |
Lekcja 1 Rozdział 2 Zadanie 1 » 2015-07-19 13:39:44 Cześć pomóżcie mam problem bo gdy próbuje zastosować if() a potem else to pojawia sie komunikat: illegal else without matching if, nawet jeśli wstawie tekst w klamerki pomiędzy if a else :( #include <iostream> using namespace std; int main()
{ int liczba; do { cout << "Podaj liczbe: " << endl; cin >> liczba; if( liczba <= 0 || liczba >= 0 ); cout << std::cin.good() << "Wybrales liczbe: " << liczba << endl; else cout << "To nie liczba, podaj jeszcze raz! " << std::cin.fail() << std::endl; cin.clear(); cin.sync(); cin >> liczba; } while( liczba == liczba ); cout << "Teraz jest ok :)"; cout << "Twoja liczba to: " << liczba << endl; return 0; }
|
|
jankowalski25 |
» 2015-07-19 13:44:20 Usuń te kropki. Powinno być [cpp][/cpp]. //edit: Zamiast if( warunek ); instrukcja; wpisz if( warunek ) instrukcja; . //edit2: Warunek if( liczba <= 0 || liczba >= 0 ) zawsze będzie prawdziwy, więc instrukcja po else nigdy się nie wykona. //edit3: Z Twojej pętli program nigdy nie wyjdzie, bo warunek while( liczba == liczba ); zawsze jest prawdziwy. |
|
Patrycjerz |
» 2015-07-19 14:14:51 |
|
jankowalski25 |
» 2015-07-19 14:28:42 @Patrycjerz Jeśli chodzi o Kolorowanie składni języka C++, to nie ma nic złego w używaniu [cpp][/cpp] zamiast [code src="C++"][/code]. Do tego służy znak \, aby można było używać znaku [ w treści. |
|
Patrycjerz |
» 2015-07-19 14:35:56 jankowalski25, nie wiedziałem o tym aliasie. Dzięki za radę z tą klamrą :D, ale dlaczego nie działa to u Programista1221? |
|
Programista1221 Temat założony przez niniejszego użytkownika |
» 2015-07-19 15:53:17 Co do warunku while to wiem że jest zły a przy warunku if to chodzi o zabezpieczenie przed literami przy liczbach wiem ze to jest zawsze prawda ale to raczej nie jest błąd, chyba. |
|
Programista1221 Temat założony przez niniejszego użytkownika |
» 2015-07-19 16:19:20 Teraz to już nwm czy ja jestem głupi czy co bo już if działa tylko nie wiem co wstawić żeby zabezpieczyć przed wpisywaniem złych danych i co wstawić jako warunek kończący pentle :/ #include <iostream> using namespace std; int main()
{ int liczba; cout << "Podaj liczbe: " << endl; cin >> liczba; if( liczba <= 0 || liczba >= 0 ) cout << cin.good() << endl << "Wybrales liczbe: " << liczba << endl; else cin.fail(); do { cout << "To nie liczba, podaj jeszcze raz! " << std::endl; cin.clear(); cin.sync(); cin >> liczba; cout << "Twoja liczba to: " << liczba << endl; } while( liczba <= 0 || liczba >= 0 ); return 0; }
|
|
jankowalski25 |
» 2015-07-19 16:21:06 wiem ze to jest zawsze prawda ale to raczej nie jest błąd |
Robisz coś w tym stylu: if( true ) wczytano_poprawnie; else nie_wczytano_poprawnie; To raczej jest błąd. |
|
« 1 » 2 3 |