[ Nibble @ 12.08.2005. 22:06 ] @
Code:
 int main()
 { int a, b, c;
 cout << "Please enter three numbers\n";
 cout << "a: ";
 cin >> a;
 cout << "\nb: ";
 cin >> b;
 cout << "\nc: ";
 cin >> c;

 if (c = (a-b)) /*Nije mi jasno ovaj uslov 
znam da ima razlike u c = (a-b) i c == (a-b)
pa ako moze ko da mi objasni */

 {cout << "a: ";
 cout << a;
 cout << "minus b: ";
 cout << b;
 cout << "equals c: ";
 cout << c << endl;}
 else
 cout << "a-b does not equal c: " << endl;
 return 0;
[ rumpl @ 12.08.2005. 22:26 ] @
Obrati paznju sada:
ako napises if(c == (a-b)) -> ispitujes da li c ima istu vrednost kao a-b
ako mapises if(c = (a-b)) -> on izracuna c i da mu vrednost (a-b), i tek onda ispituje da li je tacno ili nije.
znaj da je if nije tacno ako je vrednost 0, a ako je bilo sta drugo onda je tacno.
Uglavnom ako hoces da ispitas da li je neki uslov tacan ili nije koristis ==
"=" se koristi na primer kad imas funkcije koje vracaju neki int. (na primer read(), vraca broj procitanih karaktera, a kad nema vise nista da cita vraca 0. primer:

while ( (c = read(bla,bla,bla) != 0 )
{
bla
...
...
}
Nadam se da si razumeo.

Vazno je samo da zapamtis da je 0=false, svi ostali=true.

Pozdrav
[ NrmMyth @ 12.08.2005. 22:51 ] @
Pazi.

if( a+b );

Ako je prosljedjenja operacija ona se prvo izracunava, a zatim se provjerava u if-u njena vrijednost.

IF() je 'true' ukoliko je vrijednost razlicita od nule (bilo koji broj da nije 0).
IF() je 'false' samo ako je vrijednost 0.

a=1;
b=3;
if( a==b ) ;
- prvo se izracunava vrijednost operatora, koji vraca false(0) (jer 1 nije jednak 3) , zatim se ta vrijednost prosljedjuje if-u.

Teoretski ti je to to.

Pozdrav.
[ rumpl @ 12.08.2005. 23:04 ] @
NrmMyth je to bolje objasnio od mene :(
[ 3MAJ86 @ 13.08.2005. 07:26 ] @
to je verovatno zaostavshtina od gimnazijskog pascal-a.
najjednostavnije recheno "=" je u c-u operator dodele vrednosti, dok je "==" logichki operator koji ispituje ekvivalentnost operanada... (a al' sam se *****)
[ sikeba @ 14.05.2006. 22:15 ] @
i kazu da paskal pomaze???!!!