Lekcja 13 zagnieżdznianie warunków
Ostatnio zmodyfikowano 2012-09-08 21:24
marek8 Temat założony przez niniejszego użytkownika |
Lekcja 13 zagnieżdznianie warunków » 2012-09-04 19:56:25 wpisując liczbe 20 program wypisuje pierwsze cztery spełnione warunki , a wpisujac 3 powinien wypisac 5 i 6 warunek jako spełniony a nie wypisuje ich ? dzięki
#include <iostream> using namespace std; int main() {
cout << " Podaj liczbe calkowita :\n" << endl; int liczba; cin >> liczba;
if( liczba >= 10 ) { cout << "Liczba jest >= 10" << endl; if( liczba <= 50 ) { cout << "Liczba jest <= 50" << endl; if( liczba <= 100 ) { cout << "Liczba jest <= 100" << endl;
if( liczba >= 20 ) { cout << "Liczba jest >= 20" << endl;
if( liczba <= 4 ) { cout << "Liczba jest <= 4" << endl;
if( liczba <= 8 ) { cout << "Liczba jest <= 8" << endl; } } } } }
}
cout << "Koniec" << endl; return 0; }
|
|
Dragonit |
» 2012-09-04 20:39:03 No wcale się nie dziwię :) Żeby sprawdzić ten ostatni warunek to u ciebie muszą się zgadzać poprzednie warunki itd. Pomyśl jak to może być dobrze. |
|
mostrom |
» 2012-09-04 20:39:48 Uruchom mózg i zastanów się nad kolejnością Twoich warunków. Tip: jeśli dajesz warunek że liczba jest mniejsza niż coś, to lecisz od najwyższego, dopiero w następnym warunkujesz wartością niższą. |
|
RazzorFlame |
» 2012-09-06 14:59:40 Myślisz poważnie? if( liczba >= 20 ) { cout << "Liczba jest >= 20" << endl; if( liczba <= 4 )
Co to jest? "Jeśli liczba jest większa lub równa 20 wtedy jeśli jest mniejsza niż 4 wykonaj coś tam" Powiedz mi jakim cudem liczba może być większa od 20 i mniejsza od 4? |
|
marek8 Temat założony przez niniejszego użytkownika |
do RazzorFlame » 2012-09-08 20:40:41 wychodzi na to ze źle to rozumiem zagnieżdżanie czyli nie jest to tak jak w komentarzach ?
#include <iostream> using namespace std; int main() {
cout << " Podaj liczbe calkowita :\n" << endl; int liczba; cin >> liczba;
if( liczba >= 10 ) { cout << "Liczba jest >= 10" << endl; /* jeżeli liczba wpisana to 20 to ten warunek jest spełniony więc program wypisuje linie "Liczba jest >= 10" a jesli wpiszę 4 to jest tak ze program nie napisze tej linii, tak ? */
if( liczba <= 50 ) { cout << "Liczba jest <= 50" << endl; /* jeżeli liczba wpisana to 20 to ten warunek jest spełniony więc program wypisuje linie "Liczba jest <=50 " a jesli wpiszę 4 to warunek tez jest spełniony więc ze program tez powinien napisac tą linię poniewaz 4 <= 50, tak ? a nie pisze, dlaczego nie wiem */ if( liczba <= 100 ) { cout << "Liczba jest <= 100" << endl; // podobna sytuacja tutaj zarówno 20 jak i 4 spełnia warunek <= 100 a komentarz wyświetla sie przy 20 a przy 4 nie //
if( liczba >= 20 ) { cout << "Liczba jest >= 20" << endl; // ta linia powinna sie wyswietlac tylko ( a nie 4) przy wpisaniu 20 jest wiec ok //
if( liczba <= 4 ) { cout << "Liczba jest <= 4" << endl; /* ta linia przy wpisaniu 20 nie wyswietla sie a przy 4 rowniez nie wyswietla sie a wg tego jak zrozumiałem lekcje 13 przy wpisaniu 4 powinna sie wyswietlic ta linia , poniewaz 4 <= 4 */
if( liczba <= 8 ) { cout << "Liczba jest <= 8" << endl; /* podobna sytuacja jak we wczesniejszej linii- przy 20 nie wyswietla sie a przy 4 chyba powinna sie wyswietlic poniewaz 4 jest <= 8 przeciez */ } } } } }
}
cout << "Koniec" << endl; return 0;
gdzie tkwi bład mojego zrozumienia lekcji ? czy te warunki musza być spełnione po kolei od góry zeby przechodził do sprawdzania i wykonywania dalszych ?
|
|
marek8 Temat założony przez niniejszego użytkownika |
do Mostrom » 2012-09-08 20:50:32 "Uruchom mózg i zastanów się nad kolejnością Twoich warunków. Tip: jeśli dajesz warunek że liczba jest mniejsza niż coś, to lecisz od najwyższego, dopiero w następnym warunkujesz wartością niższą."
a jezeli daje warunek ze liczba jest wieksza niz cos to lece od najniższego ? |
|
Mrovqa |
» 2012-09-08 20:51:03 czy te warunki musza być spełnione po kolei od góry zeby przechodził do sprawdzania i wykonywania dalszych ? |
W Twoim przypadku tak - bo je zagnieżdżasz. Gdybyś je ustawił jedno po drugim, to nie musiałyby być spełnione poprzednie warunki: if( a < 5 ) { cout << "a<5"; if( a > 10 ) cout << "tu nigdy nie dojdziemy :("; }
if( a < 5 ) { cout << "a<5"; } if( a > 10 ) cout << "ale tu juz mozemy ;)";
Rozumiesz? Patrz na klamry, to co jest w nie ujęte należy do bloku kodu wykonywanego tylko wtedy, gdy zostanie spełniony warunek przed tym blokiem. |
|
marek8 Temat założony przez niniejszego użytkownika |
do mostrom » 2012-09-08 21:12:04 leci teraz od najwyzszego przy stwierdzeniu ze liczba jest <=
ale dalej nie wypisuje przy liczbie 20 ze jest >=20 i >=10 tylko pisze samo <=100 i <=50 jak ten programik powinien wygladacc zeby : -przy wpisaniu 20 napisał cztery linijki tzn. ze 20 jest <= 100 oraz <= 50 oraz >= 10 i >= 20 - przy wpisaniu 4 napisał cztery linijki ze 4 jest <= 100 <= 50 <= 8 i <= 4
dzieki
#include <iostream> using namespace std; int main() {
cout << " Podaj liczbe calkowita :\n" << endl; int liczba; cin >> liczba;
if( liczba <= 100 ) { cout << "Liczba jest <= 100" << endl;
if( liczba <= 50 ) { cout << "Liczba jest <= 50" << endl;
if( liczba <= 8 ) { cout << "Liczba jest <= 8" << endl;
if( liczba <= 4 ) { cout << "Liczba jest <= 4" << endl;
} if( liczba >= 20 ) { cout << "Liczba jest >= 20" << endl;
if( liczba >= 10 ) { cout << "Liczba jest >= 10" << endl; } } } }
}
cout << "Koniec" << endl; return 0; }
|
|
« 1 » 2 |