do
{
...
...
} while( first != -2 )
n.b. esegue il ciclo almeno una volta!
invece con:
while( first != -2 )
{
...
...
}
n.b. potrebbe anche non entrare mai nel ciclo (il codice che hai postato tu si riferisce al primo caso)
p.s. il C (a differenza del VB) è case sensitive, generalmente le parole riservate (statement) sono tutte scritte in minuscolo