Skip to content

Instantly share code, notes, and snippets.

@raimonizard
Last active October 21, 2025 11:56
Show Gist options
  • Select an option

  • Save raimonizard/3092f37bd355193af9ad9e7a5d739598 to your computer and use it in GitHub Desktop.

Select an option

Save raimonizard/3092f37bd355193af9ad9e7a5d739598 to your computer and use it in GitHub Desktop.
Correspon a l'exercici dels trios del JO-EL
import java.util.Scanner

fun main() {
    val sc = Scanner(System.`in`)
    // Declarem les variables numèriques
    var c1: Int = 0
    var c2: Int = 0
    var c3: Int = 0

    /*
    La variable 'valorCorrecte' de tipus Boolean
    està pensada per comprovar si l'input de dades de l'usuari@
    és del tipus de dades esperat
    */
    var valorCorrecte: Boolean = false

    do {
        print("Escriu el primer valor (1-13)... ")
        valorCorrecte = sc.hasNextInt()

        // No han escrit un enter
        if (valorCorrecte == false){
            // Descarto la basura que l'usuari@ ha escrit
            sc.nextLine()
            println("ERROR! No has escrit un enter")
        }else{ // Sí que m'han escrit un enter! :)
            c1 = sc.nextInt()

            if (c1 < 1 || c1 > 13){
                println("ERROR! Vale, ara has escrit un enter ($c1), però no en tinc prou, vull que estigui entre 1 i 13 (ambdós inclosos)")
                // Forçar que continui en el bucle
                valorCorrecte = false
            }
            // Descartem el valor llegit ja sigui perquè era incorrecte 
            // o per tal de netejar el buffer si ja era correcte i així deixar-lo llest per a una propera lectura
            sc.nextLine()
        }
    }while(valorCorrecte == false)

    do {
        print("Escriu el segon valor (1-13)... ")
        valorCorrecte = sc.hasNextInt()

        // No han escrit un enter
        if (valorCorrecte == false){
            // Descarto la basura que l'usuari@ ha escrit
            sc.nextLine()
            println("ERROR! No has escrit un enter")
        }else{ // Sí que m'han escrit un enter! :)
            c2 = sc.nextInt()

            if (c2 < 1 || c2 > 13){
                println("ERROR! Vale, ara has escrit un enter ($c2), però no en tinc prou, vull que estigui entre 1 i 13 (ambdós inclosos)")
                // Forçar que continui en el bucle
                valorCorrecte = false
            }
            // Descartem el valor llegit ja sigui perquè era incorrecte 
            // o per tal de netejar el buffer si ja era correcte i així deixar-lo llest per a una propera lectura
            sc.nextLine()
        }
    }while(valorCorrecte == false)

    do {
        print("Escriu el tercer valor (1-13)... ")
        valorCorrecte = sc.hasNextInt()

        // No han escrit un enter
        if (valorCorrecte == false){
            // Descarto la basura que l'usuari@ ha escrit
            sc.nextLine()
            println("ERROR! No has escrit un enter")
        }else{ // Sí que m'han escrit un enter! :)
            c3 = sc.nextInt()

            if (c3 < 1 || c3 > 13){
                println("ERROR! Vale, ara has escrit un enter ($c3), però no en tinc prou, vull que estigui entre 1 i 13 (ambdós inclosos)")
                // Forçar que continui en el bucle
                valorCorrecte = false
            }
            // Descartem el valor llegit ja sigui perquè era incorrecte 
            // o per tal de netejar el buffer si ja era correcte i així deixar-lo llest per a una propera lectura
            sc.nextLine()
        }
    }while(valorCorrecte == false)

    // INICI TEST
    println("$c1, $c2, $c3")
    // FINAL TEST

    if (c1 == c2 && c2 == c3) {
        println("SI")
    } else {
        println("NO")
    }
}

Crèdits: https://jo-el.es/problem/buscartrios

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment