claro, el WHILE también comprueba una condición, de la misma forma que lo hace un IF. En este caso se comprueba el estado booleano de 'tam', que sea positivo siempre.. luego lo decrementa con el operador de post-decrementación. El tema es que el WHILE es para realizar ciclos, por lo tanto se van a cumplir los ciclos necesarios hasta que 'tam' sea 0, estado booleano conocido como 'false' o falso. Cualquier valor diferente de 0 se considera 'true' o verdadero.