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

dziwne działanie programu

Ostatnio zmodyfikowano 2010-11-06 23:53
Autor Wiadomość
Bialcus
Temat założony przez niniejszego użytkownika
dziwne działanie programu
» 2010-11-06 22:17:08
Witam,

[kod=c++]
#include <iostream>

using namespace std ;

int main ()
{
    char c ;
   
    while ((c != 'k') || (c != 'K'))
    {
          cin >> c ;     
    }       
}
[/kod]

po naciśnięcia k lub K powinien program zakończyć pracę, a tu dupa... nie ma reakcji na nic można wklepywać co się chce i nic. o co cho?

pozdrawiam i witam
P-23624
ison
» 2010-11-06 22:22:25
powinno być && zamiast ||
Twój program zakończy się gdy użytkownik poda jednocześnie 'k' i 'K' - a taka sytuacja nie zajdzie
P-23625
Bialcus
Temat założony przez niniejszego użytkownika
» 2010-11-06 22:30:36
ale operator || jest operatorem 'lub' więc nie rozumiem.... powinno się zakończyć gdy wpisane zostanie k LUB K ..x|
P-23627
F90M
» 2010-11-06 23:16:09
Pętla wykonuje się dopóki jej wartość jest prawdziwa czyli różna od zera.
suma logiczna (lub), zwraca wartość 1 jeśli składowa A lub składowa B jest prawdziwa.
iloczyn logiczny (i), zwraca wartość 1 jeśli składowa A i składowa B są prawdziwe.
P-23630
VND
» 2010-11-06 23:16:31
While wykonuje się do momentu gdy wartość wyrażenia w nawiasie jest równa prawdzie, czyli różna od zera.
W twoim przypadku aby osiągnąć zero wyrażenie c!='k' i c!='K' oba muszą dać w wyniku zero (fałsz)
0 || 0 = 0
1 || 0 = 1
0 || 1 = 1
Jeśli którekolwiek z nich daje prawdę (1) to  wynikiem wyrażenia jest prawda, while nie kończy się.
No a sam przyznasz, że ciężko jest osiągnąc c='k' i 'K' jednocześnie.

Edit: spóźniłem się ;)
P-23631
Bialcus
Temat założony przez niniejszego użytkownika
» 2010-11-06 23:53:56
ogarnąłem xD dzięki wielkie za łopatologiczne wytłumaczenia ; )
P-23633
« 1 »
  Strona 1 z 1