dziwne działanie programu
Ostatnio zmodyfikowano 2010-11-06 23:53
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 |
|
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 |
|
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| |
|
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. |
|
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ę ;) |
|
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 ; ) |
|
« 1 » |