Criar solução para que o numero adicionado pelo usuário seja selecionado retornado para o calculo final

Scanner s = new Scanner(System.in)

    def intervalo = [0..15 || 15..<35 || 35..100] 
    for (def i = 0; i < 1;) {
      
        print("Informe um valor da textura do solo: ")
       
        def num = s.nextInt();
       
        if (num >= intervalo[0] && num <= intervalo[100]) {
          
            intervalo[1.5] += 0..15
          
            intervalo[2.25] += 15..<35
            intervalo[3.0] += 35..100
           
            i++;
         
            fator += num
        } else {
         
            println("Número inválido.")
        }
        for (def i = 0; i < 1;) {
           
            print "Informe o valor do Al " + al[0]
            println("Calculo é: " + al - fator)
        }

Estou começando agora a programar, e preciso criar essa solução, porém não estou conseguindo. Quem poder me ajudar ou dar dicas ai. Nao da certo o jeito que fiz.
obs: estou programando em Groovy

Que linguagem é essa?

Groovy

Nunca escrevi uma linha de código em Groovy, mas só de bater o olho já vejo um monte de coisa estranha. Vc tem dois fors, ambos definindo a mesma variável (i). Isso está compilando/sendo interpretado corretamente? Pq vc esta usando esses fors? Esse tipo que intervalo está apontando, funciona mesmo dessa forma? Vc pode ter índices arbitrários como um array associativo?

Eu acho que vc deveria parar e ir estudar o básico primeiro… Parece que os fundamentos de programação ainda estão faltando para vc.

Pq começou com Groovy?

Groovy é ele fantástico, muito dinâmico e nele pode ser usado o OOP e/ou usar as fuções dele. Nao precisa fica digitando gets e sets, nem private nos atributos etc…

Então assim, exuga muita coisa e falicita o codigo.

Obs: consegui aqui, fiz essas correções que vc citou ai tbm, exuguei o codigo e passou. Obg