Es que el break es lo importante de mi codigo. Sino NO es lo mismo que tu codigo.
Voy a explicarme nuevamente. Tu codigo resumido y simplificado para que sirva como ejemplo es algo asi:
if(condicion1) Tm = 1
if(condicion2) Tm = 2
if(condicion3) Tm = 3
if(condicion4) Tm = 4
if(condicion5) Tm = 5
if(condicion6) Tm = 6
Si lo hacemos un for como el de planeta va a ser lo mismo, Lo que estas haciendo vos es cambiar el valor de Tm segun entra o no en el if. Supongamos que condicion1 , el 3 y 6 se cumplen.Primero entra al if de la condicion1 y queda Tm = 1, luego entra al de la condicion3 y termina con Tm = 3, y finalmente a la condicion6.
Cual es el resultado de Tm al final de eso? Tm = 6. ¿Importo que yo calcule el del 1 y el del 3? NO, solo el ultimo
Otro ejemplo. Que pasa si condicion2 y 5 se cumplen. ¿Cual es el resultado de Tm?, es Tm = 5.
Porque es el ULTIMO en asignarle el valor a Tm el que IMPORTA. Asi que al final, lo que importa no es pasar por todos, sino saber cual es el ultimo de todos los casos que cumplen la condicion. Y una ves encontrado no seguir mas.
Entonces ¿para que voy a gastar tiempo calculando lo de las condiciones anteriores si solo me interesa el ultimo? Por eso mismo mi for comienza desde el ultimo, y apenas asigna el valor de Tm sale del for con el break, sino daria un valor erroneo. El resultado de mi codigo deberia ser el mismo que el tuyo y que el de planeta, es decir Tm deberia tener el mismo valor al salir del for.
Si solo uno solo entraria, sigue siendo mejor ir de atras hacia el 1, debido a que termina siendo mas rapido.