Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Lancye

area de uma casa

Recommended Posts

Boa noite

 

Faço o primeiro período de eng. de computação

e estou com dificuldades em java

 

um exercício q o professor passou é para calcular a area de uma casa com você dando os valores dos lados dos cômdos(send eles retangulares)

 

quand fiz o exercício utilizand 1 para sim e 0 para não ele deu certo, mas quando tento colocar para s ser sim e n ser não o programa falha, o q estou fazend de errado?

 

import java.util.Scanner;
public class casa{
	 public static void main(String args[]){
		 float L,C,A;
		 String  s= null, n=null , R; 
		 
		 Scanner entrada = new Scanner(System.in);
		 System.out.print("Este programa serve para calcular a área de sua casa");
		 System.out.printf("\n\nDigite a largura do primeiro cômodo: \n");
		 L = entrada.nextFloat();
		 System.out.printf("\n Digite o comprimento deste cômodo: \n");
		 C = entrada.nextFloat();
		 A=L*C;
		 System.out.printf("\n Existem mais cômdos a serem adicionados?, digite s para sim e n para não \n");
		 R = entrada.nextLine();
		 
		 if(R==n)
		 System.out.printf("A área total da casa e: %f \n", A);
			 
		 if(R==s){
			 while(R==s){
				System.out.printf("\n Digite a largura do próximo cômodo: \n");
				L = entrada.nextFloat();
				System.out.printf("\n Digite o comprimento deste cômodo: \n");
				C = entrada.nextFloat();
				A+=L*C;
				System.out.printf("\n Existem mais cômodos a serem adicionados? \n");
				R = entrada.nextLine();
			}
			System.out.printf("A área total da casa e: %f  \n", A);
		}
	}
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Existe alguns erros de comparação de texto, pois ao ler a linha toda o S contém espaços que você não está retirando.

 

Adicione um Trim ao "R" para verificar se corrige seu erro.

 

Att

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pra começar, as variáveis s, n e R poderiam ser do tipo char uma vez que recebem apenas 's' ou 'n'.

 

Você não deve comparar os valores de objetos com o operador de igualdade "==", afinal, você não quer saber se os objetos tem a mesma referência, você quer saber se são iguais. Neste caso o certo seria usar o método equals() da super classe Object.

if(R.equals(n) {}

E mais, em momento algum vi você atribuir valores para as variáveis s e n. Elas são sempre nulas. Desse jeito o programa não vai funcionar, mesmo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

As variaveis s e n não têm valor nenhum para esse programa, simplesmente elimine-as...

 

compare do seguinte modo:

if(R.equals("s")) {
	//instruções
}

if(R.equals("n") {
	  while(R.equals("n")) {
			 //instruções
	  }
}

Qlqr coisa é só postar... http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.