Duda sobre resultado del ejercicio 17

Esto es lo que hice:

const random = Math.round(Math.random() * 20)
let bool = true
while (bool){
	const adiv = parseInt(prompt('Adivine!, coloque un número del 1 al 20:'))

	if (random === adiv){
		console.log('Wuuoo..., lo adivinaste!')
		bool = false 
	} else {
		console.log('Ups..., intentalo nuevamente!',random)
	}
}

Entonces lo ejecuto, digito y al final me sale así:
Ingresa un numero> 8
Lo siento, intenta nuevamente! 9
Ingresa un numero> 9
Felicitaciones, ese era!
false
al final no entiendo porque me sale la palabra false, me pueden orientar?
Gracias.

Hola,

En el minuto 11’ 13’’ el profesor lo explica.

Me parece que es por el entorno en dónde se está programando. Probé el programa lanzando un .html con LiveServer y en la consola no imprime el false.

1 me gusta

Creo que el profesor tambien lo menciono, el console.log lee que elementos aun hay debajo de el y como ese elemento es la variable siendo asignada a false, imprime ese cambio.
La otra manera es cambiar de linea la asignacion, antes del console.log

let m = Math.ceil(Math.random() * 10)
let flag = true
while(flag){
    let n = parseInt(prompt('numero'))
    if (n === m){
        flag = false // flag = !flag
        console.log('Numero encontrado')
    }
    else console.log('Intente nuevamente')
}