/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package segundalista;
/**
*
* @author workstation
*/
public class Terceiro {
public static void main (String []args){
double alt, malt, menoralt; //declaracao das variaveis
int i, fem;
char sexo;
String nome;
i=0;
fem = 0;
malt = 0;
menoralt = 0;
while (i<3){
i++;
nome = InOut.leString("Entre com seu nome");
sexo = InOut.leChar ("Entre com seu sexo, f para feminino e m para masculino");
alt = InOut.leDouble("Entre com sua altura, para separar a casa decimal use (.) ponto");
if (malt < alt){
malt = alt;
}else {
menoralt = alt;
malt = malt;
}
if (sexo == 'f'){
fem= +1;
}
}
System.out.println("Possui a menor altura medindo" +menoralt"de"+nome);//não estou conseguindo imprimir o nome
System.out.println("A maior altura e de;" +malt );
System.out.println("Pessoas do sexo feminino;" +fem );
}
}
Na linha 58 “System.out.println(“Possui a menor altura medindo” +menoralt"de”+nome);" está faltando um sinal de adição para realizar a concatenação da String.
System.out.println(“Possui a menor altura medindo” + menoralt + " de " + nome);
[quote=Andre Rosa]O que está acontecendo? Está dando algum erro?
A impressão é feita dessa forma mesmo. Talvez o problema não seja a saída e sim a entrada.[/quote]
o erro que da e o seguinte:
Exception in thread “main” java.lang.RuntimeException: Uncompilable source code - variable nome might not have been initialized
at segundalista.Terceiro.main(Terceiro.java:58)
Java Result: 1
e não imprime as informações que quero, sendo que se eu tirar esse +nome e deixar somente menoralt ele imprime tudo direitinho, sexo, e maior altura.
[quote=jpbadeveloper]Na linha 58 “System.out.println(“Possui a menor altura medindo” +menoralt"de”+nome);" está faltando um sinal de adição para realizar a concatenação da String.
System.out.println(“Possui a menor altura medindo” + menoralt + " de " + nome);[/quote]
[quote=Ckralls][quote=Andre Rosa]O que está acontecendo? Está dando algum erro?
A impressão é feita dessa forma mesmo. Talvez o problema não seja a saída e sim a entrada.[/quote]
o erro que da e o seguinte:
Exception in thread “main” java.lang.RuntimeException: Uncompilable source code - variable nome might not have been initialized
at segundalista.Terceiro.main(Terceiro.java:58)
Java Result: 1
e não imprime as informações que quero, sendo que se eu tirar esse +nome e deixar somente menoralt ele imprime tudo direitinho, sexo, e maior altura.[/quote]
[quote=jpbadeveloper]Na linha 58 “System.out.println(“Possui a menor altura medindo” +menoralt"de”+nome);" está faltando um sinal de adição para realizar a concatenação da String.
System.out.println(“Possui a menor altura medindo” + menoralt + " de " + nome);[/quote]
E vocês chegaram a ler a mensagem de erro que o Java deu para ele?
A mensagem de erro diz que a variável nome pode não ter sido inicializada. Isso porque ele não tem como saber se seu código vai ou não entrar no while. Como você não atribui nenhum valor a nome antes do while, se o código não entrasse no while, seria um erro tentar imprimir.
Para eliminar o erro, basta declarar nome como:
String nome = "";
E o código estará corrigido.
Aproveite e corrija também a indentação do seu código. Está toda errada.
Dê nomes melhores para suas variáveis "malt" é bem confuso quando se tem a menor e a maior altura.
Veja:
public class Terceiro {
public static void main(String[] args) {
double maiorAltura = 0;
double menorAltura = Double.MAX_VALUE;
String nomeMenor = "";
int contFem = 0;
String nome = "";
for (int i = 0 ; i < 3; i++)
{
nome = InOut.leString("Entre com seu nome");
char sexo = InOut.leChar("Entre com seu sexo, f para feminino e m para masculino");
double alt = InOut.leDouble("Entre com sua altura, para separar a casa decimal use (.) ponto");
if (menorAltura > alt) {
menorAltura = alt;
nomeMenor = nome;
}
if (maiorAltura < alt) {
maiorAltura = alt;
}
if (sexo == 'f' || sexo == 'F') {
contFem++;
}
}
System.out.println("Possui a menor altura medindo" + menorAltura + "de" + nomeMenor);
System.out.println("A maior altura e de;" + maiorAltura);
System.out.println("Pessoas do sexo feminino;" + contFem);
}
}
Ckralls neste link http://www.oracle.com/technetwork/java/codeconv-138413.html tem um manual para algumas convenções de nome, espaçamento, comentários, e outras regras que devem ser seguidas para se ter uma boa leitura do seu código java. Por favor por curiosidade minha na linhas 33, 34 e 35 você utiliza um nome InOut.leString o InOut é uma classe do seu pacote, se for você poderia postar ela também.
Essa linha coloca na variável o maior valor possível para um double.
Assim vc garante que a comparação com qualquer número irá atribuir um valor menor a essa variável.