Lancye 0 Denunciar post Postado Maio 6, 2009 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
sublyer 0 Denunciar post Postado Maio 6, 2009 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
Vergil 15 Denunciar post Postado Maio 7, 2009 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
Giovanni Ritchie 0 Denunciar post Postado Junho 5, 2009 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