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

do...while - warunek 0>0 nie kończy pętli

Ostatnio zmodyfikowano 2016-01-07 16:17
Autor Wiadomość
grupowana
Temat założony przez niniejszego użytkownika
do...while - warunek 0>0 nie kończy pętli
» 2016-01-05 20:28:13
C/C++
#include <iostream>
using namespace std;
int main()
{
    int ilosc = - 1;
   
    do
    {
        cout << "Podaj ilosc liczb: ";
        cin >> ilosc; //po podaniu 0 pętla dalej pyta się o ilość liczb
    }
    while( 0 > ilosc ); //przecież 0>0 nie spełnia warunku, o co chodzi?
   
    return 0;
}

Wie ktoś dlaczego tak się dzieje? Przecież 0>ilosc to nie to samo co 0>=ilosc, więc czemu pętla się nie skończyła?
P-142924
carlosmay
» 2016-01-05 21:22:23
/przecież 0>0 nie spełnia warunku
 I tak jest. Przykład działa prawidłowo. Może jakiś problem z kompilatorem.
Sprawdzałem na VS i CB.

Sprawdź to:
C/C++
int main()
{
    int ilosc = - 1;
    char * tekst = "Podaj ilosc liczb: ";
    while(( cout << tekst ) &&( cin >> ilosc ) &&( ilosc < 0 ) );
   
    return 0;
}
 
P-142926
grupowana
Temat założony przez niniejszego użytkownika
do...while - warunek 0>0 nie kończy pętli
» 2016-01-06 13:21:14
Z jakiego kompilatora korzystasz w CodeBlock'u?

Próbowałem skompilować na:
1) GCC 4.9.2 64-bit Release, standard ISO C++11, Dev-C++ 5.11
2) Code::Blocks 13.12, MinGW gcc (tdm-1) 4.7.1

Przykład który podałem w obu przypadkach nie działa prawidłowo.

PS. Kod, który podałeś działa bardzo dobrze :)
P-142958
carlosmay
» 2016-01-06 14:02:34
Z jakiego kompilatora korzystasz w CodeBlock'u?
 Code::Blocks 13.12 rev 9501 32 bit.
gcc 4.7.1 Windows/unicode - 32 bit.
P-142965
grupowana
Temat założony przez niniejszego użytkownika
» 2016-01-06 17:29:43
Dziwne, bo u mnie na CB po podaniu 0-ra program kończy działanie, a powinien pytać się o cin>>ilosc;
P-142996
carlosmay
» 2016-01-06 20:57:15
Ale o co chodzi??
// po podaniu 0 pętla dalej pyta się o ilość liczb
 
Wie ktoś dlaczego tak się dzieje? Przecież 0>ilosc to nie to samo co 0>=ilosc, więc czemu pętla się nie skończyła?
 
C/C++
while( 0 > ilosc ); //przecież 0>0 nie spełnia warunku, o co chodzi?

 
A tutaj
Dziwne, bo u mnie na CB po podaniu 0-ra program kończy działanie, a powinien pytać się o cin>>ilosc;
 
C/C++
( 0 > 0 ) // false, petla konczy dzialanie
 tyle w temacie.
P-143018
pekfos
» 2016-01-07 12:42:32
Na pewno podajesz poprawne dane? Jeśli nie i kompilujesz w wersji języka sprzed C++11, to wartość zmiennej dalej będzie równa -1.
P-143050
grupowana
Temat założony przez niniejszego użytkownika
» 2016-01-07 16:17:20
Już wszystko działa jak powinno, wcześniej bawiłem się programem i pewnie musiałem zapomnieć o  jego skompilowaniu.

Dziękuje za odpowiedzi i przepraszam za zajęcie czasu. [zamykam temat]
P-143063
« 1 »
  Strona 1 z 1