Problema com while

Meu while está dando erro na condição que coloquei, alguém poderia abrir meus olhos?

Segue o código:

do
        {
            System.**out**.println("Digite os lados do triângulo:\n")**;**
            
            System.out.print("Lado 1:");
            int l1 = s.nextInt();
            
            System.out.print("Lado 2:");
            int l2 = s.nextInt();
            
            System.out.println("Lado 3:");
            int l3 = s.nextInt();
            
            if(l2+l3 > l1 && l2-l3 < 11 || l1+l3 > l2 && l1-l3 < l2 ||
               l1+l2 > l3 && l1-l3 < l3 )
            {
                
                if(l1 == l2 || l1 == l3 || l2 == l3)
                {
                    System.out.println("É um triângulo Isóceles.");
                } else if (l1 == l2 && l1 == l3){
                    System.out.println("É um triângulo Equilátero.");
                } else {
                    System.out.println("É um triângulo Escaleno");
                }//fim sub if
                
                System.out.print("Deseja continuar?");
                char es1 = s.next().charAt(0);
                
            } else { 
                
                System.out.println("Não é possivel formar um triângulo com os"
                                + "números digitados. Deseja continuar? (s/n)");
                char es2 = s.next().charAt(0);
            
            } //fim if
            
        } while(es1 == 's' || es2 == 's'); //fim do

Eu percebi que se eu colocar a minha variável es2 fora do else, não da o erro no while, mas preciso que ela fique no else para caso não forme o triangulo com os valores digitados, que o programa pergunte se ele deseje continuar. Mesma coisa com es1…

Ola @Victor_Harry,

tem que declarar do lado de fora e inicializar ela, dentro do else ela recebe ou não o valor, ex:

valor default

char es2 = '\u0000';

depois condiciona

while(es1 == 's' || es2 == 's');
2 curtidas

Deu certinho cara! Não entendi esse ‘\u0000’, pq colocando isso como valor da variável deu certo? Qual a lógica? :hushed:

Isso é o valor default do tipo char, tipos primitivos em variaveis locais devem ser inicializados, veja doc:

Primitivos datatypes

1 curtida