PDA

View Full Version : [c++] funzione if


ICE2012
16-09-2010, 00:45
Ciao a tutti mi sto studiando il sorgente di un tris k sfutta l'algoritmo minimax.... sono ancora al inizio ma non riesco a capire l'IF di riga 118 (vi posto il codice)

if(psble(i,j))
{
tris[i][j]='O';
t=valutamossa('X', 20);
printf("%d\n",t);
if(t>max)
{
max=t;
mi=i;
mj=j;
}
tris[i][j]=' ';
}
tris[mi][mj]='O';

con psble uguale a

int psble(int i, int j)
{
return tris[i][j]==' ';
}

qual'è la condizione di quell if (quello sottolineato)??

ho gia trovato un caso simile all insterno di questo sorgente ma la situazione era diversa (posto un esempio) :


if (funz(i))
{
......
......
}
.......

dove funz(i) terminava con un return 0 o un return 1
studiando il programma in debug ho dedotto che se la funzione restituiva 0 la condizione era falsa e quindi il programma continuava saltando le istruzioni del if....
viceversa se la funz restituiva 1 il programma eseguiva le istruzioni del blocco if....
è la stessa cosa con

if(psble(i,j))

????

spero di essere stato chiaro nel esprimere i miei dubbi :)
grazie mille a tutti in anticipo...

Luke Bonham
16-09-2010, 01:17
qual'è la condizione di quell if (quello sottolineato)??

L'if è un costrutto booleano, quando non trovi un'espressione, sottintendi != 0.

In questo caso:

if ( psble (i, j) != 0 )



studiando il programma in debug ho dedotto che se la funzione restituiva 0 la condizione era falsa e quindi il programma continuava saltando le istruzioni del if....
viceversa se la funz restituiva 1 il programma eseguiva le istruzioni del blocco if....
è la stessa cosa con

if(psble(i,j))

????

Certo, in C++ infatti la regola è:

false = 0
true = 1


È bene sperimentare, ma documentati bene prima sul comportamento del linguaggio, che è fondamentale capire.

!fazz
16-09-2010, 16:19
L'if è un costrutto booleano, quando non trovi un'espressione, sottintendi != 0.

In questo caso:

if ( psble (i, j) != 0 )




Certo, in C++ infatti la regola è:

false = 0
true = 1


È bene sperimentare, ma documentati bene prima sul comportamento del linguaggio, che è fondamentale capire.

oddio è da un bel pò che non uso il cpp ma mi pare che venga sottointeso ==true non !=false

tuccio`
16-09-2010, 16:33
quindi puoi inserire


while (2);


in tutti i tuoi programmi sicuro che termineranno sempre ^_^

ICE2012
16-09-2010, 19:27
quindi puoi inserire


while (2);


in tutti i tuoi programmi sicuro che termineranno sempre ^_^

ahahahahah sicuramente!!!!!

grazie a tutti... adesso ho capito :)