Iniciante em Java - Exercicio

1- Foi realizada uma pesquisa de algumas características físicas da população de uma certa região, a qual coletou os seguintes dados referentes a cada habitante para serem analisados: sexo (F ou M), cor dos olhos (A - Azuis, V - Verdes, P -pretos ou C - Castanhos), cor dos cabelos (L - loros, C - Castanhos, P -Pretos) e idade. Faça um algorítmo que leia os dados enquanto o usuário desejar. Para isso, mostre uma mensagem: “Deseja continuar (S/N)?”. O usuário deverá responder S ou N, prever entrada de dados maiúscula ou minúscula. Imprima:

  • A menor idade.

  • A quantidade de mulheres cuja idade está entre 18 e 35 anos, incluindo estes valores.

  • A quantidade de homens de cabelos castanhos ou que tenham idade maior que 28 anos.

  • A média de idade das mulheres de olhos castanhos.

Obs: Consegui chegar ate aqui, podem ajudar a concluir o exercicio.
import java.util.Scanner;

public class Duvidadocaralah {

public static void main(String[] args) {

Scanner s = new Scanner (System.in);
String sexo,corolhos,corcabelo;
double idade = 0,menoridade = 0,mulheres18e35 = 0,conthomen = 0,
contmulher = 0,contidade = 0,mediaidade = 0;

for (int i = 0;i != 0;){

System.out.println(“Digite o sexo (m/f)”);
sexo = s.next ();

System.out.println(“Digite a cor dos olhos (A - Azuis, V - Verdes, P - pretos ou C - Castanhos)”);
corolhos = s.next ();

System.out.println(“Digite cor dos cabelos (L - loros, C - Castanhos, P - Pretos)”);
corcabelo = s.next ();

System.out.println(“Digite a idade”);
idade = s.nextDouble ();

if (menoridade > idade)
menoridade = idade;

if (sexo.equals(“f”)){
if (idade >= 18 && idade <= 35)
mulheres18e35 ++;

}
if (sexo.equals(“m”)){
if (corcabelo.equals(“c”) || idade > 28)
conthomen ++;

}

if (sexo.equals(“f”) && corolhos.equals(“c”)){
contmulher ++;
contidade = contidade + idade;

}

System.out.println(“Deseja continuar (sim/nao)”);
if (s.equals(“sim”) || s.equals(“s”))
i = 1;
else
i = 0;

}
mediaidade = contidade/contmulher;

System.out.println(“A menor idade foi” + menoridade);
System.out.println(“A quantidade de mulheres cuja idade está entre 18 e 35 anos, incluindo estes valores” +
“\n”+mulheres18e35);
System.out.println(“A quantidade de homens de cabelos castanhos ou que tenham idade maior que 28 anos” +
“\n”+conthomen);
System.out.println(" A média de idade das mulheres de olhos castanhos"+mediaidade);

}

}

Sim, podemos. Mas poste seu código entre as TAGs [code][/code], e esclareça melhor as suas dúvidas com relação ao exercício.

Boa Noite, favor explica melhor sobre codigo pois é a primeira vez que entro no forum, e a duvida é que o programa não esta pedindo a informação de cada objeto, esta indo direto ao resultado de 0000 em tudo, não passando pelo System.printIn para solicitar.

Ótimo, mas poste o seu código novamente, entre as TAGs [code][/code], pois o fórum está formatando-o.

[quote]import java.util.Scanner;

public class Duvidadocaralah {

public static void main(String[] args) {

Scanner s = new Scanner (System.in);
String sexo,corolhos,corcabelo;
double idade = 0,menoridade = 0,mulheres18e35 = 0,conthomen = 0,
contmulher = 0,contidade = 0,mediaidade = 0;

for (int i = 0;i != 0;){

System.out.println(“Digite o sexo (m/f)”);
sexo = s.next ();

System.out.println(“Digite a cor dos olhos (A - Azuis, V - Verdes, P - pretos ou C - Castanhos)”);
corolhos = s.next ();

System.out.println(“Digite cor dos cabelos (L - loros, C - Castanhos, P - Pretos)”);
corcabelo = s.next ();

System.out.println(“Digite a idade”);
idade = s.nextDouble ();

if (menoridade > idade)
menoridade = idade;

if (sexo.equals(“f”)){
if (idade >= 18 && idade <= 35)
mulheres18e35 ++;

}
if (sexo.equals(“m”)){
if (corcabelo.equals(“c”) || idade > 28)
conthomen ++;

}

if (sexo.equals(“f”) && corolhos.equals(“c”)){
contmulher ++;
contidade = contidade + idade;

}

System.out.println(“Deseja continuar (sim/nao)”);
if (s.equals(“sim”) || s.equals(“s”))
i = 1;
else
i = 0;

}
mediaidade = contidade/contmulher;

System.out.println(“A menor idade foi” + menoridade);
System.out.println(“A quantidade de mulheres cuja idade está entre 18 e 35 anos, incluindo estes valores” +
“\n”+mulheres18e35);
System.out.println(“A quantidade de homens de cabelos castanhos ou que tenham idade maior que 28 anos” +
“\n”+conthomen);
System.out.println(" A média de idade das mulheres de olhos castanhos"+mediaidade);

}

}

[code]
sera que é assim?

Não. É assim:

[code]
//seu código
[/code]

//seu codigo
import java.util.Scanner; 

public class Duvidadocaralah { 

public static void main(String[] args) { 

Scanner s = new Scanner (System.in); 
String sexo,corolhos,corcabelo; 
double idade = 0,menoridade = 0,mulheres18e35 = 0,conthomen = 0, 
contmulher = 0,contidade = 0,mediaidade = 0; 

for (int i = 0;i != 0;){ 

System.out.println("Digite o sexo (m/f)"); 
sexo = s.next (); 

System.out.println("Digite a cor dos olhos (A - Azuis, V - Verdes, P - pretos ou C - Castanhos)"); 
corolhos = s.next (); 

System.out.println("Digite cor dos cabelos (L - loros, C - Castanhos, P - Pretos)"); 
corcabelo = s.next (); 

System.out.println("Digite a idade"); 
idade = s.nextDouble (); 

if (menoridade > idade) 
menoridade = idade; 

if (sexo.equals("f")){ 
if (idade >= 18 && idade <= 35) 
mulheres18e35 ++; 

} 
if (sexo.equals("m")){ 
if (corcabelo.equals("c") || idade > 28) 
conthomen ++; 

} 

if (sexo.equals("f") && corolhos.equals("c")){ 
contmulher ++; 
contidade = contidade + idade; 

} 

System.out.println("Deseja continuar (sim/nao)"); 
if (s.equals("sim") || s.equals("s")) 
i = 1; 
else 
i = 0; 


} 
mediaidade = contidade/contmulher; 

System.out.println("A menor idade foi" + menoridade); 
System.out.println("A quantidade de mulheres cuja idade está entre 18 e 35 anos, incluindo estes valores" + 
"\n"+mulheres18e35); 
System.out.println("A quantidade de homens de cabelos castanhos ou que tenham idade maior que 28 anos" + 
"\n"+conthomen); 
System.out.println(" A média de idade das mulheres de olhos castanhos"+mediaidade); 


} 

} 

Assim?

Isso. O problema parece estar aqui:

for (int i = 0;i != 0;)

Explique qual é a sua intenção, com relação ao loop, pois essa linha não faz sentido algum.

Boa Noite fui acompanhando o raciocinio da apostila, que no caso de repeticao tenho que usar um for ou while e imprimir estas 4 solicitação:

// codigo
- A menor idade. 

- A quantidade de mulheres cuja idade está entre 18 e 35 anos, incluindo estes valores. 

- A quantidade de homens de cabelos castanhos ou que tenham idade maior que 28 anos. 

- A média de idade das mulheres de olhos castanhos. 

Eu aconselho a usar o laço while(). Por exemplo:

String deseja = "s"; Scanner in = new Scanner(System.in); while("s".equals(deseja)){ System.out.println("Deseja continuar? s/n: "); deseja = in.nextLine(); }

[quote=Jose Carlot] Boa Noite fui acompanhando o raciocinio da apostila, que no caso de repeticao tenho que usar um for ou while e imprimir estas 4 solicitação:

[code]
// codigo

  • A menor idade.

  • A quantidade de mulheres cuja idade está entre 18 e 35 anos, incluindo estes valores.

  • A quantidade de homens de cabelos castanhos ou que tenham idade maior que 28 anos.

  • A média de idade das mulheres de olhos castanhos.

[/code][/quote]

Se for para repetir 4 vezes, bastaria fazer:

for (int i=0; i < 4; i++){ //(...) }

mas no caso do seu exercício, pelo enunciado, é para parar apenas quando o usuário quiser. Dê uma olhada no exemplo do while() que postei.

 Colocar o while no final do programa, é isso para que ele pergunte?

É como deixei no meu exemplo. Você fará a entrada de dados até o usuário dizer que não quer mais continuar, como ilustrei em meu exemplo. Ou seja, a parte de entrada ficará dentro do loop.

Andre, esse string vou botar depois de Scanner? ou no lugar do for no inicio.

[code]
import java.util.Scanner;

public class Duvidadocaralah {

public static void main(String[] args) {

Scanner s = new Scanner (System.in);
String sexo,corolhos,corcabelo;
double idade = 0,menoridade = 0,mulheres18e35 = 0,conthomen = 0,
contmulher = 0,contidade = 0,mediaidade = 0;

String deseja = “s”;
Scanner in = new Scanner(System.in);
while(“s”.equals(deseja)){
System.out.println("Deseja continuar? s/n: ");
deseja = in.nextLine();
}

System.out.println(“Digite o sexo (m/f)”);
sexo = s.next ();

[quote=Jose Carlot]Andre, esse string vou botar depois de Scanner? ou no lugar do for no inicio.
import java.util.Scanner;

public class Duvidadocaralah {

public static void main(String[] args) {

Scanner s = new Scanner (System.in);
String sexo,corolhos,corcabelo;
double idade = 0,menoridade = 0,mulheres18e35 = 0,conthomen = 0,
contmulher = 0,contidade = 0,mediaidade = 0;

String deseja = “s”;
Scanner in = new Scanner(System.in);
while(“s”.equals(deseja)){
System.out.println("Deseja continuar? s/n: ");
deseja = in.nextLine();
}

System.out.println(“Digite o sexo (m/f)”);
sexo = s.next ();
[/quote]

Você já tem um objeto Scanner e, portanto, não precisará criar outro.

[code]import java.util.Scanner;

public class Duvidadocaralah {

public static void main(String[] args) {

Scanner s = new Scanner (System.in);
String sexo,corolhos,corcabelo;
double idade = 0,menoridade = 0,mulheres18e35 = 0,conthomen = 0,
contmulher = 0,contidade = 0,mediaidade = 0;

String deseja = “s”;
while(“s”.equals(deseja)){
/* aqui você põe todas as suas perguntas, para entrada de dados /
System.out.println(“Digite o sexo (m/f)”);
sexo = s.next ();
/
após terminar a entrada de dados, você pergunta se quer continuar */
System.out.println("Deseja continuar? s/n: ");
deseja = s.nextLine();
} [/code]

Vou jogar no programa para ver e como vou imprimir tudo, conforme o solicitado da tarefa, o professor pediu para imprimir tudo final.

Andre, eu coloquei conforme solicitou mas meu porgrama deu erro, para adiantar pois tenho que enviar amanha tem como me ajudar a excluir o peso e a altura deste programapois nesse caso vou envia-lo, tentei excluir mas o meu programa deu erro, não quis executar, esse programa que estava analisando rodou legal, mas porem tem coisas demais.
Pode me ajudar.

1.	
2.	
3.	/*Foi realizada uma pesquisa de algumas caracteristicas físicas da população de certa região, a qual coletou os seguintes dados 
4.	referentes a cada habitante para serem analisados. 
5.	
6.	*sexo (Masculino , Feminino); 
7.	*cor dos olhos (azuis, verdes ou castanhos); 
8.	*cor dos cabelos (louros, castanhos, pretos); 
9.	*idade; 
10.	*altura; 
11.	*peso; 
12.	
13.	Apresente a média da idade dos participantes, a média do peso e da altura de seus habitantes, a porcentagem de pessoas do sexo 
14.	feminino e a porcentagem de pessoas do sexo masculino.Quantas pessoas possuem olhos verdes e cabelos louros? 
15.	A cada interação deverá ser perguntado ao usuário se deseja continuar ou não. 
16.	Os resultados deverão ser apresentados apenas quando o usuário não desejar mais inserir dados.*/ 
17.	
18.	
19.	
20.	package questão; 
21.	import javax.swing.JOptionPane; 
22.	public class Main { 
23.	public static void main(String[] args) { 
24.	int cabelo, olho, idade, sexo, decisao, contOlho,contCabelo,olhocabelo; 
25.	float altura, peso, mediaIdade, mediaPeso, mediaAltura, AcumAltura, AcumIdade,AcumPeso,contMulher,contHomem,contPart; 
26.	double porcMulher, porcHomem, porcTotal; 
27.	porcTotal=0; 
28.	olho=0; 
29.	cabelo=0; 
30.	sexo=0; 
31.	contPart=0; 
32.	decisao=1; 
33.	mediaIdade=0; 
34.	mediaPeso=0; 
35.	mediaAltura=0; 
36.	porcMulher=0; 
37.	porcHomem=0; 
38.	AcumIdade=0; 
39.	AcumAltura=0; 
40.	AcumPeso=0; 
41.	contMulher=0; 
42.	contHomem=0; 
43.	olhocabelo=0; 
44.	while (decisao==1){ 
45.	sexo=Integer.parseInt(JOptionPane.showInputDialog("Informe o sexo\n1 - Masculino\n2 - Feminino")); 
46.	switch (sexo){ 
47.	case 1: 
48.	olho=Integer.parseInt(JOptionPane.showInputDialog("Informe a cor dos olhos\n1 - Azuis\n2 - Verdes\n3 - Castanhos")); 
49.	while (olho!=1 && olho!=2 && olho!=3){ 
50.	JOptionPane.showMessageDialog(null,"Valor inserido para os olhos Inválido\nInsira Novamente"); 
51.	olho=Integer.parseInt(JOptionPane.showInputDialog("Informe a cor dos olhos\n1 - Azuis\n2 - Verdes\n3 - Castanhos")); 
52.	} 
53.	cabelo=Integer.parseInt(JOptionPane.showInputDialog("Insira a cor dos cabelos\n1 - Louros\n2 - Castanhos\n3 - Pretos")); 
54.	while (cabelo!=1 && cabelo!=2 && cabelo!=3){ 
55.	JOptionPane.showMessageDialog(null,"Valor inserido para o cabelo Inválido\nInsira Novamente"); 
56.	cabelo=Integer.parseInt(JOptionPane.showInputDialog("Insira a cor dos cabelos\n1 - Louros\n2 - Castanhos\n3 - Pretos")); 
57.	} 
58.	idade=Integer.parseInt(JOptionPane.showInputDialog("Informe a Idade")); 
59.	AcumIdade=AcumIdade+idade; 
60.	altura=Float.parseFloat(JOptionPane.showInputDialog("Insira a Altura")); 
61.	while (altura<0.20){ 
62.	JOptionPane.showMessageDialog(null,"Valor inserido para a altura Inválido\nInsira Novamente"); 
63.	altura=Float.parseFloat(JOptionPane.showInputDialog("Insira a Altura")); 
64.	} 
65.	AcumAltura=AcumAltura+altura; 
66.	peso=Float.parseFloat(JOptionPane.showInputDialog("Informe o peso")); 
67.	AcumPeso=AcumPeso+peso; 
68.	contHomem++; 
69.	break; 
70.	case 2: 
71.	contMulher++; 
72.	olho=Integer.parseInt(JOptionPane.showInputDialog("Informe a cor dos olhos\n1 - Azuis\n2 - Verdes\n3 - Castanhos")); 
73.	while (olho!=1 && olho!=2 && olho!=3){ 
74.	JOptionPane.showMessageDialog(null,"Valor inserido para os olhos Inválido\nInsira Novamente"); 
75.	olho=Integer.parseInt(JOptionPane.showInputDialog("Informe a cor dos olhos\n1 - Azuis\n2 - Verdes\n3 - Castanhos")); 
76.	} 
77.	cabelo=Integer.parseInt(JOptionPane.showInputDialog("Insira a cor dos cabelos\n1 - Louros\n2 - Castanhos\n3 - Pretos")); 
78.	while (cabelo!=1 && cabelo!=2 && cabelo!=3){ 
79.	JOptionPane.showMessageDialog(null,"Valor inserido para o cabelo Inválido\nInsira Novamente"); 
80.	cabelo=Integer.parseInt(JOptionPane.showInputDialog("Insira a cor dos cabelos\n1 - Louros\n2 - Castanhos\n3 - Pretos")); 
81.	} 
82.	idade=Integer.parseInt(JOptionPane.showInputDialog("Informe a Idade")); 
83.	AcumIdade=AcumIdade+idade; 
84.	altura=Float.parseFloat(JOptionPane.showInputDialog("Insira a Altura")); 
85.	while (altura<0.20){ 
86.	JOptionPane.showMessageDialog(null,"Valor inserido para a altura Inválido\nInsira Novamente"); 
87.	altura=Float.parseFloat(JOptionPane.showInputDialog("Insira a Altura")); 
88.	} 
89.	AcumAltura=AcumAltura+altura; 
90.	peso=Float.parseFloat(JOptionPane.showInputDialog("Informe o peso")); 
91.	AcumPeso=AcumPeso+peso; 
92.	break; 
93.	default: JOptionPane.showMessageDialog(null,"Sexo Inserido Inválido\nInsira Novamente"); 
94.	
95.	} 
96.	if (sexo==1 || sexo==2){ 
97.	decisao=Integer.parseInt(JOptionPane.showInputDialog("Deseja Continuar?\n1 - Sim\n2 - Não")); 
98.	if ((sexo==1||sexo==2) && olho==2 && cabelo==1 ){ 
99.	olhocabelo++; 
100.	} 
101.	contPart=contHomem+contMulher; 
102.	while (decisao!=1 && decisao!=2){ 
103.	JOptionPane.showMessageDialog(null,"Valor inserido para a decisao Inválido\nInsira Novamente"); 
104.	decisao=Integer.parseInt(JOptionPane.showInputDialog("Deseja Continuar?\n1 - Sim\n2 - Não")); 
105.	} 
106.	} 
107.	} 
108.	if (contPart>0){ 
109.	porcTotal=contPart; 
110.	mediaIdade=AcumIdade/contPart; 
111.	JOptionPane.showMessageDialog(null,"A Média de idade dos participantes é = "+mediaIdade); 
112.	mediaAltura=AcumAltura/contPart; 
113.	JOptionPane.showMessageDialog(null,"A Média de altura dos participantes é = "+mediaAltura); 
114.	mediaPeso=AcumPeso/contPart; 
115.	JOptionPane.showMessageDialog(null,"A Média de peso dos participantes é = "+mediaPeso); 
116.	porcMulher= (contMulher * 100) / porcTotal; 
117.	JOptionPane.showMessageDialog(null,"A porcentagem de Mulhere no total dos participante é = "+porcMulher+"%"); 
118.	porcHomem= (contHomem * 100) / porcTotal; 
119.	JOptionPane.showMessageDialog(null,"A porcentagem de Homens no total dos participante é = "+porcHomem+"%"); 
120.	JOptionPane.showMessageDialog(null,"A quantidade de participantes de olhos verdes e cabelos louros é = "+olhocabelo); 
121.	} 
122.	} 
123.	} 

Como assim excluir?

Esse programa aparece todas as solicitações de sexo, idade e cabelos, porem tem altura e peso que não esta na tarefa, não consegui resolver o primeiro exemplo, vou ter que tentar de outra forma, pois tenho que enviar essa tarefa.