Dúvida de exercício

[code]public class TrianguloI {

int a, b,  c;

int verificarTriangulo(){
	
	 if(a==b && b==a && c==a){
		System.out.println("Equilátero!");
	}else{
		if(a==b || b==a ||  a==c){
			System.out.println("Isosceles!");
		}else{
			System.out.println("Escaleno!");
		}
	}
	 return;// O QUE COLOCO AQUI PARA RETORNAR OS IF's?
	[/code]

Olá Emerson

Bem vindo ao mundo de java.
Para uma função Java, o tipo de dado do retorno deve ser referente à como vc quer usar na sua aplicação. Assim, como o tipo de retorno da função ‘VerificarTrianguo()’ é um tipo int, DIGAMOS que vc quer usar um int na sua resposta, então vc poderia utilizar 0 para Equilatero, 1 para Isoceles e 2 para Escaleno.

Nesse seu código, tem 2 correções que vc poderia fazer.

  1. a sintaxe do else {if(){}}, vc poderia trocar diretamente para else if (){};
  2. dentro de cada bloco de if, vc faz um retorno. Desta forma, satisfazendo a execução, a JVM não vai mais olhar p o restante do codido.

Um alteração seria:

int verificarTriangulo(){  
          
         if(a==b && b==a && c==a){  
            return 0; // equivale a Equilátero
        }else if (a==b || b==a ||  a==c){  
                return 1; equivale a Isosceles
        }else{  
                return 2; //equivale a Escaleno            
        }  
}

Agora se vc não quer retornar nada, quer só mostrar a informação na linha do comando (sysout), então basta q vc retire do seu codigo o tipo de retonrno na assinatura (troca int por void) e retira a instrução return.

Blz? Espero ter ajudado. Abcs

olá, berg.pb.
Eu fiz basicamente assim, mas nao consigo imprimir se é escaleno, isósceles, etc…

[code]
public class TrianguloI {

int a, b, c;

void verificarTriangulo() {

	if (a == b && b == a && c == a) {
		System.out.println("Equilátero!");
		return;
		
		
	} else {
		if (a == b || b == a || a == c) {
			System.out.println("Isosceles!");
			return;
		} else {
			System.out.println("Escaleno!");
			return;
		}
	}[/code]

o meu main fiz assim, mas nao está dando certo.

[code]
public class LadosTriangulo {
public static void main(String[] args) {

	TrianguloI tri1I = new TrianguloI();
	Scanner leitor = new Scanner(System.in);
	
	System.out.println("Lado A = ");
	tri1I.a=leitor.nextInt();
	System.out.println("Lado B = ");
	tri1I.b=leitor.nextInt();
	System.out.println("Lado C = ");
	tri1I.c=leitor.nextInt();

System.out.println(tri1I.verificarTriangulo());
[/code]

Ola emerson.

Veja, vc nao entendeu direito.
Ou um metodo retorna nada (void) ou ele retorna algums coisa. A partir do seus main da pra perceber que vc quer um retorno do metodo verificaTriangulo. E pelo que parece retorna um String.

Entao se vc quer que retorne uma String, na assinatura do método, troque o void por String. E nesse caso, nao eh necessario a impressao do sysout dentro do metodo, uma vez que essa impressa ja esta declarada no main.

Qto ao metodo, verifica sua logica. Axo que tem algum erro.
Lembrando os conceitos,
Triang Equilatero eh qdo todos os lados sao iguaiz, ou seja, qdo a = b e a = c e b = c.
Triang Isoceles eh qdo tem dois lados iguais, ou seja, qdo a=b ou a = c ou b= c
Triang escaleno eh qdo os tres lados sao distintos, ou seja, qdo nao cai em nenhuma das validacoes acima.

De um verificada e testa.
Abcs. Boa sorte.
:slight_smile:

Oi, Ederson,

Eu estava olhando e vi um reparo para a sua classe Triangulo. Onde você escreve

a == b || b == a || a == c

você está repetindo o teste “a==b” com “b==a” (dê uma olhada no código). O certo seria:

a == b || b == c || a == c 

No primeiro teste, você comete o mesmo erro:

a == b && b == a && c == a)

o correto seria:

a == b && b == c && c == a)

Comentando o post do Berg, você tem que decidir o que cada parte do seu programa vai fazer. Na sua listagem, existe um “println” para cada tipo de triângulo, dentro do método verificarTriangulo(), e também há outro “println” dentro do método main(). Você tem que escolher entre eles. Ou chamar o método verificarTriangulo, fazendo com que ele retorne o tipo do triângulo, e imprimir esse resultado, ou então chamar o método verificarTriangulo e deixar que ele imprima o resultado, por si mesmo. Qualquer das alternativas é válida. Mas tem que escolher.

Espero ter ajudado.

Olá,
verifiquei a lógica, mas nao estou conseguindo imprimir os dados do triangulo. olha só:

[code]public class TrianguloI {

int a, b, c;
String Escaleno, Isosceles, Equilátero;

String verificarTriangulo() {

	if (a == b && b == c && c == a) {
	
		return Equilátero;
		 
		
		
	} else {
		if (a == b || b == c|| a == c) {
			
			return Isosceles;
			 
		} else {
			
			return Escaleno;
		
		}
	}
	
		
	}

void imprimiDados(){
System.out.println(verificarTriangulo());
[/code]

he o meu main tá dando erro:

[code]public class LadosTriangulo {
public static void main(String[] args) {

	TrianguloI tri1I = new TrianguloI();
	Scanner leitor = new Scanner(System.in);
	
	System.out.println("Lado A = ");
	tri1I.a=leitor.nextInt();
	System.out.println("Lado B = ");
	tri1I.b=leitor.nextInt();
	System.out.println("Lado C = ");
	tri1I.c=leitor.nextInt();
	
	tri1I.imprimiDados();
	[/code]

Olha, uma solução que conserva ao máximo a sua lógica é substituir o valor de retorno do método verificarTriangulo(). Por exemplo, quando o seu código diz:

return Equilátero; //não há aspas

substitua por

return "Equilátero"; //note que agora há aspas

Faça o mesmo com as linhas

return Escaleno; //sem aspas

e

return Isósceles; //também sem aspas

Coloque aspas antes e depois de “Escaleno” e de “Isósceles”.

Com isso, a linha que cria os campos String não é mais necessária. Suprimir a linha:

String Escaleno, Isosceles, Equilátero; 

A explicação é a seguinte:

Antes: você criou 3 variáveis, com o nome de “Escaleno”, “Isósceles” e “Equilátero”. Como não atribuiu nenhum valor a elas, elas assumem null. Por isso você não via o valor de retorno.

Depois: o método verificarTriangulo() volta uma String que varia conforme o tipo de triângulo. O resultado varia conforme o tipo de triângulo.

Rode um teste. Espero que esteja ok.

Esta postagem foi sinalizada pela comunidade e está oculta temporariamente.

[quote=edersombarros]Olá,
verifiquei a lógica, mas nao estou conseguindo imprimir os dados do triangulo. olha só:

[code]public class TrianguloI {

int a, b, c;
String Escaleno, Isosceles, Equilátero;

String verificarTriangulo() {

	if (a == b && b == c && c == a) {
	
		return Equilátero;
		 
		
		
	} else {
		if (a == b || b == c|| a == c) {
			
			return Isosceles;
			 
		} else {
			
			return Escaleno;
		
		}
	}
	
		
	}

void imprimiDados(){
System.out.println(verificarTriangulo());
[/code]

he o meu main tá dando erro:

[code]public class LadosTriangulo {
public static void main(String[] args) {

	TrianguloI tri1I = new TrianguloI();
	Scanner leitor = new Scanner(System.in);
	
	System.out.println("Lado A = ");
	tri1I.a=leitor.nextInt();
	System.out.println("Lado B = ");
	tri1I.b=leitor.nextInt();
	System.out.println("Lado C = ");
	tri1I.c=leitor.nextInt();
	
	tri1I.imprimiDados();
	[/code][/quote]

Você deveria modificar o código dessa forma :

[code]public class TrianguloI {

int a, b, c;

String resultado;

String verificarTriangulo() {

	if (a == b && b == c && c == a) {
	
		resultado = "Equilátero";
		 
		
		
	} else {
		if (a == b || b == c|| a == c) {
			
			resultado = "Isósceles";
			 
		} else {
			
			resultado = "Escaleno";
		
		}
	}
	
		return resultado;

	} // fim de verificaTriangulo()

void imprimiDados(){
System.out.println(verificarTriangulo());
[/code]

[quote=edersombarros][code]public class TrianguloI {

int a, b,  c;

int verificarTriangulo(){
	
	 if(a==b && b==a && c==a){
		System.out.println("Equilátero!");
	}else{
		if(a==b || b==a ||  a==c){
			System.out.println("Isosceles!");
		}else{
			System.out.println("Escaleno!");
		}
	}
	 return;// O QUE COLOCO AQUI PARA RETORNAR OS IF's?
	[/code][/quote]

outra forma simples é simplesmente abolir o método, use diretamente os if’s…
porque vc precisa ter um método.

Mas se é para aprender e estudar método, tudo bem.

Cara, sinceramente, não estou sendo rude, mas pega uma apostila e começa a ler… vc precisa entender o que é orientação a objeto em primeiro lugar… como base nisso e em seus pilares irá aprender o que é e para que serve instanciar um objeto…

Recomendo ler a apostila gratuita da Caelum sobre java…

Abraços.

[quote=edersombarros][code]public class TrianguloI {

int a, b,  c;

int verificarTriangulo(){
	
	 if(a==b && b==a && c==a){
		System.out.println("Equilátero!");
	}else{
		if(a==b || b==a ||  a==c){
			System.out.println("Isosceles!");
		}else{
			System.out.println("Escaleno!");
		}
	}
	 return;// O QUE COLOCO AQUI PARA RETORNAR OS IF's?
	[/code][/quote]

Amigo bem vindo ao Fórum.

Uma maneira de fazer isso para você começar a entender seria:

package triangulo;

public class TrianguloIdentificado {
    public static void main(String[] args){       

        int a, b, c;
        
        a=2; b=2; c=2;
        if(a==b && b==c){  
                System.out.println("Equilátero!");
        }else{
            if(a==b || b==c ||  a==c){
                System.out.println("Isosceles!");  
            }else{
                System.out.println("Escaleno!");  
            }  
        }
        
        a=1; b=2; c=2;
        if(a==b && b==c){  
                System.out.println("Equilátero!");
        }else{
            if(a==b || b==c ||  a==c){
                System.out.println("Isosceles!");  
            }else{
                System.out.println("Escaleno!");  
            }  
        }
        
        a=1; b=2; c=3;
        if(a==b && b==c){  
                System.out.println("Equilátero!");
        }else{
            if(a==b || b==c ||  a==c){
                System.out.println("Isosceles!");  
            }else{
                System.out.println("Escaleno!");  
            }  
        }
    }
}

Na minha opinião existem inúmeras combinações possíveis
para se fazer um programinha para atender o que você pediu
e por isso eu optei em colocar uma solução que te mostre a coisa funcionando
pois assim resolve sua dúvida primeiramente.

Depois disso comece a aperfeiçoar sua solução, pois só assim
poderá entender o que é ou não correto.

Olhe as apostilas da Caelum para iniciantes em java

Leia o Livro Java Use a Cabeça (ótima didática)

abraço.