Boa tarde! Sou um programador iniciante e estou com uma duvida.
O código abaixo não apanha mais que uma vez uma string. Ele deve guardar os valores de salario do sexo masculino e feminino e retornar a média para cada sexo, no entanto ele pede pro usuário inserir apenas uma vez o sexo, e quando entra novamente no loop ele não deixa eu inserir uma nova string e sai do loop pq preencheu a variavel “sexo” com nada aparentemente.
Segue abaixo o código:
public static void main(String[] args) {
//variáveis
String sexo;
float salf, salm;
int f1, m1;
f1 = 0;
m1 = 0;
salf = 0;
salm = 0;
Scanner ler = new Scanner(System.in);
do {
System.out.println("Insira o sexo");
sexo = ler.nextLine();
if (sexo.equals("m")) {
System.out.println("Insira a renda");
salm = salm + ler.nextFloat();
m1++;
}else if(sexo.equals("f")){
System.out.println("Insira a renda");
salf = salf + ler.nextFloat();
f1++;
}
} while (sexo.equals("m") || sexo.equals("f"));
System.out.println("media mulher: " + (salf/f1));
System.out.println("media homem: " + (salm/m1));
}
Eu peguei sua ideia inicial, e dei uma mudada. E funcionou sem problemas:
char sexo;
float mediaM = 0, mediaF = 0, renda = 0;
int m1 = 0, f1 = 0;
Scanner sc = new Scanner(System.in);
System.out.print("Digite o sexo: ");
sexo = sc.next().charAt(0);
while (sexo == 'm' || sexo == 'f') {
System.out.print("Insira o salário: ");
renda = sc.nextFloat();
if (sexo == 'm') {
mediaM = mediaM + renda;
m1++;
}
if (sexo == 'f') {
mediaF = mediaF + renda;
f1++;
}
System.out.println("Existem dados de " + m1 + " homens, com média de " + (mediaM / m1));
System.out.println("Existem dados de " + f1 + " mulheres, com média de " + (mediaF / f1));
System.out.print("\nDigite o sexo: ");
sexo = sc.next().charAt(0);
}
E teve esse saída:
Digite o sexo: m
Insira o salário: 500
Existem dados de 1 homens, com média de 500.0
Existem dados de 0 mulheres, com média de NaN
Digite o sexo: f
Insira o salário: 800
Existem dados de 1 homens, com média de 500.0
Existem dados de 1 mulheres, com média de 800.0
Digite o sexo: m
Insira o salário: 300
Existem dados de 2 homens, com média de 400.0
Existem dados de 1 mulheres, com média de 800.0
Digite o sexo: f
Insira o salário: 725
Existem dados de 2 homens, com média de 400.0
Existem dados de 2 mulheres, com média de 762.5
Edit, usando String em sexo.
String sexo;
float mediaM = 0, mediaF = 0, renda = 0;
int m1 = 0, f1 = 0;
Scanner sc = new Scanner(System.in);
System.out.print("Digite o sexo: ");
sexo = sc.next();
while (sexo.equals("m") || sexo.equals("f")) {
System.out.print("Insira o salário: ");
renda = sc.nextFloat();
if (sexo.equals("m")) {
mediaM = mediaM + renda;
m1++;
}
if (sexo.equals("f")) {
mediaF = mediaF + renda;
f1++;
}
System.out.println("Existem dados de " + m1 + " homens, com média de " + (mediaM / m1));
System.out.println("Existem dados de " + f1 + " mulheres, com média de " + (mediaF / f1));
System.out.print("\nDigite o sexo: ");
sexo = sc.next();
}