Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Como criar uma função de previsão do tempo em Java

Olá! Sou iniciante na área de programação e tentei fazer um programa simples de previsão do tempo para aprender a utilizar os métodos.

Fiz primeiro uma classe previsaodotempo:

public class previsaodotempo { String sol = "sol"; String chuva = "chuva";

public void diaensolarado(tempo) {
    if (tempo == sol){
        System.out.println("Vou a praia");
    }else{
        System.out.println("Vou estudar\n;" + "almoçar\n;" + "ver televisão\n" + "dormir");
    }
}

Depois fiz uma classe testaprevisaodotempo:

public class testaprevisaodotempo { public static void main(String [] args) { previsaodotempo previsao = new previsaodotempo (); previsao.diaensolarado(sol);

}

}

Mas não funcionou e eu não faço ideia de como resolver isso. Será que alguém poderia me ajudar? Agradeço desde já a atenção.

2 respostas
solução!

Opa Danielle, tudo bem?

Então, como você está querendo comparar Strings no java, String é uma classe, então ela possui seu comportamento através de métodos, quando você usa o == você está comparando objeto em si, então ele iria comparar o endereçamento de memoria desse objeto e não o valor dele.

Para seu codigo funcionar você pode utilizar dois métodos da classe string que nos ajudam a comparar, tem o .equals(outraString) e o .equalsIgnoreCase(outraString), o equals compara se são exatamente iguais e o equalsIgnoreCase compara ignorando as maiusculas e minusculas.

Para funcionar seu código ficaria assim:

public class Previsaodotempo { 
    String sol = "sol";
    String chuva = "chuva";

    public void diaensolarado(String tempo) {
        if (tempo.equals(sol)){
            System.out.println("Vou a praia");
        } else {
            System.out.println("Vou estudar\n" + "almoçar\n" + "ver televisão\n" + "dormir");
        }
    }
}

e a classe de teste ficaria assim:

public class testaprevisaodotempo {
 public static void main(String [] args) { 
    Previsaodotempo previsao = new Previsaodotempo(); 
        previsao.diaensolarado("sol");
  }
}

Espero que tenha ficado claro!

    Muito obrigada pela explicação!  Funcionou e de quebra você me ensinou a usar o método  .equalsIgnoreCase.