// Cambios
// Do while que verifica si se desea calcular otra divisa
// Valida si la opción de continuar es valida
fun main() {
// Cambio 1: pregunta al usuario si desea volver a ingresar una conversión
var continuarPrograma = true
do {
println("Lista de países de cambio:")
println("1. Colombia")
println("2. Perú")
println("3. Suiza") // Lista de los paises
print("Selecciona el país de cambio: ")
val opPais = readLine()?.toIntOrNull() ?: run { // Entrada del pais a escoger
println("Opción inválida") // Validacion por Run
return
}
print("Entre la cantidad de dólares para el cambio: ")
val dolares = readLine()?.toDoubleOrNull() ?: run { // Entrada de la cantidad a cambiar
println("Cantidad inválida") // Validacion por Run
return
}
val divisa = when (opPais) { // Funciona como el Switch de C. Declara variable de divisa
1 -> dolares * 4215
2 -> dolares * 3.77
3 -> dolares * 0.85
else -> {
println("Opción inválida") // Validacion
return
}
}
val moneda = when (opPais) { // Funciona como el Switch de C. Declara variable de moneda
1 -> "Pesos Colombianos"
2 -> "Soles"
3 -> "Francos Suizos"
else -> ""
}
println("La divisa es: $divisa $moneda.") // Imprime el resultado
// Cambio 2: Valida si la opción de continuar es valida
var validInput = false
do {
print("¿Desea realizar otra conversión? (y/n): ")
val respuesta = readLine() ?: "n" // Asigna el valor default "n" si se envía nulo
if (respuesta.equals("y", ignoreCase = true)) {
continuarPrograma = true
validInput = true
} else if (respuesta.equals("n", ignoreCase = true)) {
continuarPrograma = false
validInput = true
} else {
println("Favor de ingresar 'y' o 'n'.")
}
} while (!validInput)
} while (continuarPrograma)
}