Questo pezzo di programma...

codice:
                if( !trovatoTipo )
		{
			if( riga.startsWith( "<messaggio1>" ) )
			{
				fai qualcosa
			}
			if( riga.startsWith( "<messaggio2>" ) );
			{
				fai qualcos'altro
			}
			if( riga.startsWith( "<messaggio3>" ) );
			{
				fai qualcos'altro ancora
				
			}
                  }
                ....
Ha un comportamento strano.

La String riga non inizia con nessuno dei tag contenuti negli startsWith, quindi tutti gli if dovrebbero essere falsi e il blocco if non dovrebbe fare niente.

Invece, il primo if da false (il blocco di istruzioni all'intendo non viene elaborato), mentre il secondo da true, come tutti gli altri successivi.

Esplorando il programma con il debug, vedo che la String riga non è mai cambiata, quindi come mai ha questo comportamento alquanto originale?