Instanciando Trângulos

Eu escrevi os seguintes códigos:

OBJETO

package aplicacaolpoo;

import javax.swing.JOptionPane;

public class Triangulo {

private double l1, l2, l3;

public void setL1 (double l1) {
    this.l1 = l1;
}

public double getL1(){
    return l1;
}

public void setL2 (double l2) {
    this.l2 = l2;
}

public double getL2() {
    return l2;
}

public void setL3 (double l3) {
    this.l3 = l3;
}

public double getL3() {
    return l3;
}

public void dadosTriangulo() {
    l1 = Double.parseDouble(JOptionPane.showInputDialog("Digite um valor para um lado do triângulo"));
    l2 = Double.parseDouble(JOptionPane.showInputDialog("Digite Outro valor para outro lado do triângulo"));
    l3 = Double.parseDouble(JOptionPane.showInputDialog("Digite mais um valor para outro lado do triângulo"));
}

public void tipificarTriangulo() {
    if ((l3 < l1 + l2) && (l2 < l3 + l1) && (l1 <  l3+ l2)){
       if ((l1 == l2) && (l1 != l3)) {
          JOptionPane.showMessageDialog(null, "O triângulo é isósceles");
       } else if ((l1 == l2) && (l1 == l3)) {
          JOptionPane.showMessageDialog(null, "O triângulo é equilátero");
       } else {
          JOptionPane.showMessageDialog(null, "O triângulo é escaleno");
       }
    } else {
        JOptionPane.showMessageDialog(null,"Essas medidas não formam um triângulo");
    }
}

}

INSTANCIAÇÃO

package aplicacaolpoo;

import javax.swing.JOptionPane;

public class TiposDeTriangulos {

public static void main(String[] args) {
    
    Triangulo t1 = new Triangulo();
    
    int e = 0;
    
    while (e == 0) {
        t1.dadosTriangulo();
        t1.tipificarTriangulo();
        e = JOptionPane.showConfirmDialog(null, "Deseja continuar?", "Opções", JOptionPane.YES_NO_OPTION);
    }
}

}

A minha dúvida é como faço pra usar o laço for pra pedir ao usuário pra inserir dados ao invés de declarar três variáveis diferentes

**public void dadosTriangulo() {**

** l1 = Double.parseDouble(JOptionPane.showInputDialog(“Digite um valor para um lado do triângulo”));**
** l2 = Double.parseDouble(JOptionPane.showInputDialog("Digite Outro valor para outro lado do**
triângulo"));
** l3 = Double.parseDouble(JOptionPane.showInputDialog(“Digite mais um valor para outro lado do triângulo”));**
** }**

e depois testá-las com o if.

**public void tipificarTriangulo() {**

** if ((l3 < l1 + l2) && (l2 < l3 + l1) && (l1 < l3+ l2)){**
** if ((l1 == l2) && (l1 != l3)) {**
** JOptionPane.showMessageDialog(null, “O triângulo é isósceles”);**
** } else if ((l1 == l2) && (l1 == l3)) {**
** JOptionPane.showMessageDialog(null, “O triângulo é equilátero”);**
** } else {**
** JOptionPane.showMessageDialog(null, “O triângulo é escaleno”);**
** }**
** } else {**
** JOptionPane.showMessageDialog(null,“Essas medidas não formam um triângulo”);**
** }**
** }**

Eu confesso que tentei fazer, mas deu erro e parei por não saber pra onde seguir.
Alguém poderia me ajudar nisso?

Erro? Qual erro?

no tipificarTriangulo recomendo que ordene os lados, fica mais fácil de validar:

double ladoMenor() {
  double menor;
   if (l1 < l2) {
     menor = l1;
   } else {
     menor = l2;
   }
   if (l3 < menor) {
     menor = l3;
   }
   return menor;
}

void tipificarTriangulo() {
  double lado1 = ladoMenor();
  double lado2 = ladoIntermadiario();
  double lado3 = ladoMaior();
  // verifica se forma triangulo
  // verifica se é equilátero
  // verifica se é isoceles
  // se não for nenhum caso acima, então é escaleno
}

para usar um laço para os três lados, será necessário usar array:

for (int i = 0; i < 3; i+=1) {
  lado[i] = Double.parseDouble(JOptionPane.showInputDialog("Digite um valor para um lado "+i+" do triângulo"));
}

vc pode usar uma String e usar o Split:

String entrada= JOptionPane.showInputDialog("Digite os três lados do triângulo, use um espaço para separar os valores:");
String[] ladosString = entrada.split(" ");
for (int i = 0; i < 3; i+=1) {
  lados[i] = parseDouble(ladosString[i]);
}

Obrigado por me ajudar diego12. Eu acho que eu não soube explicar direito. É o seguinte: no código eu declarei três variáveis pra receber o valor dos três lados de um triângulo, o que eu gostaria é que, ao invés de usar três variáveis, usar apenas uma variável em um laço for. Até aí, eu consegui fazer e ficou assim:

public void dadosTriangulo() {
for(int i = 1; i <= 3; i++) {
l = Double.parseDouble(JOptionPane.showInputDialog(“Digite o valor do " + i + " lado do triângulo”));
}
}

O problema é que eu não acertei a criar o código pra usar no método tipificarTriangulo( ). Eu não consegui fazer o teste usando if. Daí eu não consegui passar. Ou seja, o primeiro código que eu enviei está certo, compilou sem problema nenhum no NetBeans. Eu gostaria de modificar esses detalhes que eu mencionei acima pra diminuir a quantidade de linhas no código.
Eu creio que agora deu pra entender onde eu quero chegar.
Desde já agradeço a paciência.

Acho que não tem como guardar os três lados numa única variável exceto se a variável for uma classe ou array. Observe que no tipificarTriangulo precisará dos três lados, com uma variável não é possível fazer os cálculos.

Usando array, ficaria mais ou menos:

for (int i = 1; i <= 3; i+=1) {
  lado[i] = Double.parseDouble(JOptionPane.showInputDialog("Digite o valor do " + i + " lado do triângulo"));
}

diego12, valeu pela ajuda. Realmente nessa estrutura de código que eu fiz, não tem jeito de trabalhar com uma variável somente. Quando chegar no método tipificarTriangulo( ) eu vou ter problemas. Eu pedi essa ajuda pra ter certeza de que eu não estava fazendo besteira.
Abraços.

Dica de implementação para o ladoMenor():

double ladoMenor() {
    return min(l1, min(l2, l3));
}

private double min(double a, double b) {
    return a < b ? a : b;
}

Valeu. Ajudou muito.:+1::v: