Dúvida em Java

14 respostas
H

Estou fazendo um exercício usando for, só que não sei muito bem como fazer, queria uma ajuda.

É um exercício, uma parte dele pede para mostrar quantas mulheres acima de 20 anos indicaram o produto como bom.

[color=darkred]while/color{

[color=darkred]for[/color][color=red](int idade = 20;cont > 20;cont++){[/color]
		
		[color=blue]mulheres = idade > 20;
		saida = " Mulheres acima de 20 anos que indicaram o produto como bom "; 
		JOptionPane.showMessageDialog (null, saida); [/color]

Obrigado.

14 Respostas

castiel

Cara explica melhor isso!

edmarr

Tambem nao entendi muito bem e talz .

H

Esse é exe que eu tenho que fazer:

  • A empresa Unidos & Cansados Ltda., realizou um pesquisa sobre a aceitação de seu produto alimentício, e necessita de um algoritmo, que tabule e informe:
Qunts mulheres acima de 20 anos indicaram como bom;

Qunts mulheres acima de 30 anos " " ruim;

‘’ homens indicaram como pessimo;

total de homens q participaram da pesquisa.

‘’ ‘’ mulheres ‘’’ ‘’ ‘’ ‘’ .

E tem q encerrar se o usuario digitar S, caso contrario N, voltar ao inicio.

Gostaria de uma ajuda na lógica, tenho que usar for e while.
Na parte de mulheres de acima de 20 anos que indicaram como bom, não tenho a mínima ideia de como começar.

edmarr

Tente implementa-lo caso fique perdido poste o seu codigo para podermos lhe mostrar o caminho pois o pessoal te ajuda com duvidas mas . nao faz a sua tarefa de casa … !

H

Comecei desse jeito:

[color=darkred]while[/color]color=darkblue{[/color]

[color=darkred]for[/color] [color=darkblue](int idade = 20;cont > 20;cont++){
		
		mulheres = idade > 20;
		saida = " Mulheres acima de 20 anos que indicaram o produto como bom "; 
		JOptionPane.showMessageDialog (null, saida);[/color]
nel

Olá.

Pelo o que me parece está meio confuso.

Como estou no trabalho estou sem tempo para postar algum tipo de código. Sendo assim, vou lhe passar a “ideia” de como fazer e espero que consigo. Apenas um comentário, o que você pediu depende necessariamente da sua necessidade, ou seja, se você vai pedir que digite a idade e você já compare e imprima na tela se possui ou não mais que 20 anos, se vai pedir que n mulheres digitem sua idade para depois comparar uma de cada vez e assim por diante.

Vamos supor que a pesquisa seja com 10 mulheres e você deseja fazer a comparação depois das 10 mulheres informarem suas respectivas idades, então:

Crie um Array de inteiros: Exemplo:

Integer[] idade = null;

Um laço de repetição pedindo que informe a idade:

for(i=0;…) idade[i] = idadeDigitada;

E por fim um for com a verificação:

for(i=0;) {

if(idade[i] > 20){

saida = Mulher +i+ possui +idade[i]+ anos.;

JOptionPane.showMessageDialog (null, saida);

}

}

Creio que esse seja o caminho :slight_smile:

Espero ter ajudado.

Abraços!

H

nel:
Olá.

Pelo o que me parece está meio confuso.

Como estou no trabalho estou sem tempo para postar algum tipo de código. Sendo assim, vou lhe passar a “ideia” de como fazer e espero que consigo. Apenas um comentário, o que você pediu depende necessariamente da sua necessidade, ou seja, se você vai pedir que digite a idade e você já compare e imprima na tela se possui ou não mais que 20 anos, se vai pedir que n mulheres digitem sua idade para depois comparar uma de cada vez e assim por diante.

Vamos supor que a pesquisa seja com 10 mulheres e você deseja fazer a comparação depois das 10 mulheres informarem suas respectivas idades, então:

Crie um Array de inteiros: Exemplo:

Integer[] idade = null;

Um laço de repetição pedindo que informe a idade:

for(i=0;…) idade[i] = idadeDigitada;

E por fim um for com a verificação:

for(i=0;) {

if(idade[i] > 20){

saida = Mulher +i+ possui +idade[i]+ anos.;

JOptionPane.showMessageDialog (null, saida);

}

}

Creio que esse seja o caminho :slight_smile:

Espero ter ajudado.

Abraços!

Obrigado pela ajuda, mas não entendi o que esta entre parênteses no for, vou colocar tudo o que eu fiz.

[color=darkblue]package UnidosCansados;

import javax.swing.JOptionPane;

public class Exe06 {

public static void main (String args [] ){
	
	char mulheres, homens;
	int total, sexo, idade, opiniao, cont=0;
	
	String entrada;
	String saida;
	
	entrada = JOptionPane.showInputDialog ( " Qual sua idade? " );
	idade = Integer.parseInt ( entrada );

	entrada = JOptionPane.showInputDialog ( " Qual seu sexo?\nM\nF " );
	sexo = Integer.parseInt ( entrada );
	
	entrada = JOptionPane.showInputDialog ( " Qual sua opinião em relação ao nosso produto? \n1 - " +
			"péssimo\n2 - ruim\n3 - regular\n4 - bom\n5 - ótimo " );
	opiniao = Integer.parseInt ( entrada );
	
	entrada = JOptionPane.showInputDialog ( " Qual seu sexo?\n-M\n-F " );
	sexo = Integer.parseInt ( entrada );
	
	
	while(idade>20){
	
	for (int idade = 20;cont > 20;cont++){
		
		mulheres = idade > 20;
		saida = " Mulheres acima de 20 anos que indicaram o produto como bom "; 
		JOptionPane.showMessageDialog (null, saida);
		
	}
	
}

}}[/color]

edmarr

Mas antes de postar verifique o seguinte link

http://www.guj.com.br/posts/list/50115.java

H

edmarr:
nel:

Mas antes de postar verifique o seguinte link

http://www.guj.com.br/posts/list/50115.java

Eu dei uma lida, mas não entendi como deixar linhas, só consegui colocar a cor.

nel

Os pontos no for eram apenas para não colocar o formato do laço de repetição for por completo.

Sobre o modo como postar mensagens/códigos peço desculpas a todos, foi meu primeiro post e com a inteção de ajudar, vou ler com calma as regras de como postar para que não aconteça novamente!

Obrigado e abraço a todos! :slight_smile:

P.s: halflife1940 roda seu código e analisa ele com calma, veja se dá erros e caso não veja a saída e tente entender porque gero aquela saida ok?

H

nel:
Os pontos no for eram apenas para não colocar o formato do laço de repetição for por completo.

Sobre o modo como postar mensagens/códigos peço desculpas a todos, foi meu primeiro post e com a inteção de ajudar, vou ler com calma as regras de como postar para que não aconteça novamente!

Obrigado e abraço a todos! :slight_smile:

P.s: halflife1940 roda seu código e analisa ele com calma, veja se dá erros e caso não veja a saída e tente entender porque gero aquela saida ok?

É porque sou iniciante e tenho várias dúvidas.
Queria só uma ajuda nessa parte, entendendo essa parte posso continuar o exercício.

[color=darkred]while/color{ [color=green] //idade maior que 20[/color]

[color=darkred]for[/color] [color=darkblue](int idade = 20;cont > 20;cont++){
		
		mulheres = idade > 20;
		saida = " Mulheres acima de 20 anos que indicaram o produto como bom "; 
		JOptionPane.showMessageDialog (null, saida);[/color]

Obrigado a todos que me ajudaram.

castiel

cria uma classe Pessoa, com os atributos e metodos(não esqueça dos getters e setters) que vc precisa,
vc faz um:

List<Pessoa> pessoas = new ArrayList<Pessoa>();

String resposta;
do {
Pessoa pessoa = new Pessoa();
// aqui vc faz as perguntas e vai setando no seu objeto pessoa
// Qual sua idade?
pessoa.setIdade(i); // supondo que armazenou a resposta do cara em "i"
//Qual seu sexo?
pessoa.setSexo(sexo); //supondo que armazenou a resposta do cara em "sexo"

//terminando de settar tudo do objeto pessoa, vc coloca a pessoa no array
pessoas.add(pessoa);

// Deseja cadastrar mais um questionário?
// armazena a resposta em "resposta" dai ele fica no loop até responder algo diferente de "S"
}while(resposta.equals("S"));

agora aqui que vc vai fazer o seu for

for (int i = 0; i < pessoas.size(); i++) {
Pessoa pessoa = pessoas.get(i);
// aqui vc faz as verificações que vc precisa.
// se é mulher se é homem
// se tem mais de 200 anos e vai gravando em variáveis depois é  mostrar as estatisticas.
}
H

castiel:
cria uma classe Pessoa, com os atributos e metodos(não esqueça dos getters e setters) que vc precisa,
vc faz um:

List<Pessoa> pessoas = new ArrayList<Pessoa>();

String resposta;
do {
Pessoa pessoa = new Pessoa();
// aqui vc faz as perguntas e vai setando no seu objeto pessoa
// Qual sua idade?
pessoa.setIdade(i); // supondo que armazenou a resposta do cara em "i"
//Qual seu sexo?
pessoa.setSexo(sexo); //supondo que armazenou a resposta do cara em "sexo"

//terminando de settar tudo do objeto pessoa, vc coloca a pessoa no array
pessoas.add(pessoa);

// Deseja cadastrar mais um questionário?
// armazena a resposta em "resposta" dai ele fica no loop até responder algo diferente de "S"
}while(resposta.equals("S"));

agora aqui que vc vai fazer o seu for

for (int i = 0; i < pessoas.size(); i++) {
Pessoa pessoa = pessoas.get(i);
// aqui vc faz as verificações que vc precisa.
// se é mulher se é homem
// se tem mais de 200 anos e vai gravando em variáveis depois é  mostrar as estatisticas.
}

Valeu pela ajuda, vou tentar fazer aqui.

nel

Boas! Queres um jeito muito fácil de fazer isso?
Seguindo a dica do nosso amigo castiel, utilize o famoso foreach.

Ai vai um exemplo:

for(Pessoas pessoa : pessoas){ if(pessoa.getSex().equals("f") && pessoas.getIdade>20){ JOptionPane.showMessageDialog (null, "Mulher com mais de 20 anos"); } }

Adicione os outros if/else de acordo com a sua necessidade.
Explicando rapidamente o foreach: você está percorrendo uma lista cujo conteúdo é o Objeto pessoas, a cada indíce (posição) da lista ele atribui o objeto pessoas a pessoa, que é uma referencia ao objeto pessoas.

Enfim, caso queira (eu recomendo) entender melhor o foreach pesquise com mais calma na internet que terá explicações muito melhores que a minha ok?

Espero ter ajudado, mas preciso voltar ao trabalho!

Abraços! :slight_smile:

Criado 1 de outubro de 2009
Ultima resposta 2 de out. de 2009
Respostas 14
Participantes 4