Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Działanie pętli do while?

Ostatnio zmodyfikowano 2014-05-06 20:14
Autor Wiadomość
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?.
P-108829
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.
P-108830
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.
P-108834
pekfos
» 2014-04-28 09:40:28
litera = 'k'
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.
P-108835
87kelthuzad
Temat założony przez niniejszego użytkownika
» 2014-04-28 18:07:32
Program wyglada tak
C/C++
#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.
P-108864
pekfos
» 2014-04-29 10:28:11
while( !( litera = 'k' ) );
Zawsze fałszywy.

while( litera = 'k' );
Zawsze prawdziwy.

while( litera == 'k' );
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' )
..?
P-108905
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.   
P-109386
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.
C/C++
if( litera != 'k' ) {...} //czyli jeśli litera jest różna od 'k' zrób ...
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').
P-109388
« 1 »
  Strona 1 z 1