Mucho me temo que la condición:
if (num >= 0 || num <=7)
no es correcta, ya que si introduces el -1 la condición se verifica, y esto no debería de ser así.
Estaría bien de este modo:
while (0 <= num <= 7){
// hacer algo
}
// Cuando sale del bucle while, se finaliza el programa.
También se puede hacer con el if...
if (0 <= num <= 7){
// hacer algo
}else{
// mostrar mensaje de error, finalizar el programa, etc.
}
Un saludo!