87kelthuzad Temat założony przez niniejszego użytkownika |
Działanie pętli do while? » 2014-04-27 23:52:30 Mam takie pytanie w tej pętli WHILE wykona się kiedy warunek konieczny będzie równał sie FALSE(Czy zawsze tak jest?). Ale inaczej chyba jest z samym whilem bez DO bo WHILE bez DO wykonuje instrukcje pod sobą jeżeli warunek konieczny będzie TRUE?. |
|
killjoy |
» 2014-04-28 00:18:02 Nie. Pętla do..while() różni się tym od pętli while() , że ta pierwsza najpierw wykona się raz, a potem sprawdzi warunek. Pętla while() najpierw sprawdza warunek. Obie wykonują się, aż podane warunki są prawdziwe (są true). Czyli jeżeli na wstępie w pętli while() warunek będzie false, pętla nie wykona się ani razu. Natomiast pętla do..while() , wykona się raz (i o ile warunek wciąż będzie false) nie wykona się po raz kolejny. |
|
87kelthuzad Temat założony przez niniejszego użytkownika |
» 2014-04-28 06:58:06 Dobra a jak mam takie kody while(!(litera = 'k')); lub taki kod while(!stosA.empty()) To w pierwszym przypadku przecież to co jest pod while wykona się kiedy będzie false bo jeżeli wciśniemy literkę 'k' to będzie true ale mam jeszcze negacje '!' czy aby poszło dalej musimy mieć falce w drugim przykładzie analogicznie. A i jeszcze na tej stronie http://cpp0x.pl/kursy/Kurs-C++/Poziom-2/Petla-do-while/18 jest to podane ze warunek konieczny musi być false. |
|
pekfos |
» 2014-04-28 09:40:28 Nie mylisz operatorów? jest to podane ze warunek konieczny musi być false. |
Kończący, a nie konieczny. Pętla wykonuje się tak długo, jak długo warunek jest prawdziwy. |
|
87kelthuzad Temat założony przez niniejszego użytkownika |
» 2014-04-28 18:07:32 Program wyglada tak #include <iostream>
int main( int argc, char ** argv ) { char litera; do { std::cout << "Napisz litere = "; std::cin >> litera; std::cout << "Napisales litere = "; } while( !( litera = 'k' ) ); std::cout << "Program sie zakoczyl bo napisale litere k"; return 0; }
Jak piszesz Pekfos ten warunek while(!(litera = 'k')); tej False bo jak robię warunek while(litera == 'k'); lub while(litera = 'k'); to dalej wykonuje się to co znajduje się w pętli do. |
|
pekfos |
» 2014-04-29 10:28:11 while( !( litera = 'k' ) ); |
Zawsze fałszywy. Zawsze prawdziwy. Pętla wykonuje się, jak długo warunek jest prawdziwy. Czyli w tym przypadku, jak długo w litera jest 'k'. Może po prostu while( litera != 'k' ) ..? |
|
87kelthuzad Temat założony przez niniejszego użytkownika |
» 2014-05-06 19:57:26 Dobra dalej nie rozumiem, ale może trochę inaczej może nie rozumiem tego warunku. Przypuśćmy że w zmienną litera wprowadzam 'k' to jak ja to rozumiem litera != 'k' daje FALSE, czy może jedna daje TRUE. |
|
Jacob99 |
» 2014-05-06 20:14:36 Operator negacji ! zwraca wartość true jeśli znak który wprowadziłeś jest różny od r-value tego znaku. np. if( litera != 'k' ) {...}
Teraz jeśli wprowadzę np. literę 't' to wynikiem będzie prawda, ponieważ 't' jest różne od 'k'. Natomiast jeśli wprowadzę 'k' to wynikiem będzie fałsz, ponieważ 'k' nie jest różne od 'k'(czyli innymi słowy jest takie samo jak 'k'). |
|
« 1 » |