Opa galera foi mal por incomodar vocês, tem um problema no meu código que sozinho eu não conseguir resolver:
lá vai.
eu fiz do while e depois da condição while pra fechar o do, eu coloquei vários ifs e a impressão nos ifs
Essa porra não quer imprimir nada
Ela termina o programa no while da condição do DO
[code]import javax.swing.JOptionPane;
public class Reclamacoes
{
public static void main (String args[])
{
int prob, contInst = 0, contInstIF = 0, contInstSS = 0, contInstME = 0, cont = 0, reclama = 0, saida, aux = 0;
String instituição;
double porcento;
//* contProb = Contagem dos problemas
//* contInst = Contagem das instituições
//* menorRec = Menor número de reclamações
do
{
instituição = JOptionPane.showInputDialog(null, "Escolha uma instituição: "+
"\n A Operadoras de Telefonia Celular."+
"\n B Lojas de Móveis e Eletrodomésticos."+
"\n C Empresas de Seguros/Planos de Saúde."+
"\n D Bancos e Instituições Financeiras.").toUpperCase();
char cod = instituição.charAt(0);
switch(cod)
{
case 'A':
contInst = contInst + 1;
break;
case 'B':
contInstME = contInstME + 1;
break;
case 'C':
contInstSS = contInstSS + 1;
break;
case 'D':
contInstIF = contInstIF + 1;
break;
default:
JOptionPane.showMessageDialog(null,"Essa opção para instituição é inexistente.");
}
prob = Integer.parseInt(JOptionPane.showInputDialog(null, "Escolha o tipo de reclamação: "+
"\n 1 Demora no atendimento."+
"\n 2 Não conseguiu efetuar cancelamento de serviço."+
"\n 3 Dificuldade em contatar um atendente."+
"\n 4 Opções de difícil entendimento."+
"\n 5 Não conseguiu realizar a operação desejada."));
if (prob == 1)
{
cont = cont+1;
}
if (prob == 2)
{
cont = cont+1;
reclama = reclama+1;
}
if (prob == 3)
{
cont = cont+1;
}
if (prob == 4)
{
cont = cont+1;
}
if (prob == 5)
{
cont = cont+1;
}
saida = Integer.parseInt(JOptionPane.showInputDialog(null, "Deseja sair?"+
"\n Se sim, aperte 0."+
"\n Se não, aperte 1."));
}
while (saida != 0);
aux = reclama/cont;
porcento = aux*100;
if ((contInstIF < contInstSS) && (contInstIF < contInstME) && (contInstIF < contInst))
{
JOptionPane.showMessageDialog(null, "A instituição que recebeu menos reclamações foram "+
"Bancos e Instituições Financeiras."+
"\n O total de entrevistados foi de: " +cont+
"\n O por cento de reclamações para quem "+
"não conseguiu cancelar serviços foi de: " +porcento);
}
if ((contInstSS < contInstIF) && (contInstSS < contInstME) && (contInstSS < contInst))
{
JOptionPane.showMessageDialog(null, "A instituição que recebeu menos reclamações foram as "+
"Empresas de Seguros/Planos de Saúde."+
"\n O total de entrevistados foi de: " +cont+
"\n O por cento de reclamações para quem "+
"não conseguiu cancelar serviços foi de: " +porcento);
}
if ((contInstME < contInstSS) && (contInstME < contInstIF) && (contInstME < contInst))
{
JOptionPane.showMessageDialog(null, "A instituição que recebeu menos reclamações foram as "+
"Lojas de Móveis e Eletrodomésticos."+
"\n O total de entrevistados foi de: " +cont+
"\n O por cento de reclamações para quem "+
"não conseguiu cancelar serviços foi de: " +porcento);
}
if ((contInst < contInstME) && (contInst < contInstSS) && (contInst < contInstIF))
{
JOptionPane.showMessageDialog(null, "A instituição que recebeu menos reclamações foram as "+
"Operadoras de Telefonia Celular."+
"\n O total de entrevistados foi de: " +cont+
"\n O por cento de reclamações para quem "+
"não conseguiu cancelar serviços foi de: " +porcento);
}
}
public class Reclamacoes
{
public static void main (String args[])
{
int prob, contInst = 0, contInstIF = 0, contInstSS = 0, contInstME = 0, cont = 0, reclama = 0, saida, aux = 0;
String instituição;
double porcento;
//* contProb = Contagem dos problemas
//* contInst = Contagem das instituições
//* menorRec = Menor número de reclamações
do
{
instituição = JOptionPane.showInputDialog(null, "Escolha uma instituição: "+
"\n A Operadoras de Telefonia Celular."+
"\n B Lojas de Móveis e Eletrodomésticos."+
"\n C Empresas de Seguros/Planos de Saúde."+
"\n D Bancos e Instituições Financeiras.").toUpperCase();
char cod = instituição.charAt(0);
switch(cod)
{
case 'A':
contInst = contInst + 1;
break;
case 'B':
contInstME = contInstME + 1;
break;
case 'C':
contInstSS = contInstSS + 1;
break;
case 'D':
contInstIF = contInstIF + 1;
break;
default:
JOptionPane.showMessageDialog(null,"Essa opção para instituição é inexistente.");
}
prob = Integer.parseInt(JOptionPane.showInputDialog(null, "Escolha o tipo de reclamação: "+
"\n 1 Demora no atendimento."+
"\n 2 Não conseguiu efetuar cancelamento de serviço."+
"\n 3 Dificuldade em contatar um atendente."+
"\n 4 Opções de difícil entendimento."+
"\n 5 Não conseguiu realizar a operação desejada."));
if (prob == 1)
{
cont = cont+1;
}
if (prob == 2)
{
cont = cont+1;
reclama = reclama+1;
}
if (prob == 3)
{
cont = cont+1;
}
if (prob == 4)
{
cont = cont+1;
}
if (prob == 5)
{
cont = cont+1;
}
saida = Integer.parseInt(JOptionPane.showInputDialog(null, "Deseja sair?"+
"\n Se sim, aperte 0."+
"\n Se não, aperte 1."));
}
while (saida != 0);
aux = reclama/cont;
porcento = aux*100;
if ((contInstIF < contInstSS) && (contInstIF < contInstME) && (contInstIF < contInst))
{
JOptionPane.showMessageDialog(null, "A instituição que recebeu menos reclamações foram "+
"Bancos e Instituições Financeiras."+
"\n O total de entrevistados foi de: " +cont+
"\n O por cento de reclamações para quem "+
"não conseguiu cancelar serviços foi de: " +porcento);
}
if ((contInstSS < contInstIF) && (contInstSS < contInstME) && (contInstSS < contInst))
{
JOptionPane.showMessageDialog(null, "A instituição que recebeu menos reclamações foram as "+
"Empresas de Seguros/Planos de Saúde."+
"\n O total de entrevistados foi de: " +cont+
"\n O por cento de reclamações para quem "+
"não conseguiu cancelar serviços foi de: " +porcento);
}
if ((contInstME < contInstSS) && (contInstME < contInstIF) && (contInstME < contInst))
{
JOptionPane.showMessageDialog(null, "A instituição que recebeu menos reclamações foram as "+
"Lojas de Móveis e Eletrodomésticos."+
"\n O total de entrevistados foi de: " +cont+
"\n O por cento de reclamações para quem "+
"não conseguiu cancelar serviços foi de: " +porcento);
}
if ((contInst < contInstME) && (contInst < contInstSS) && (contInst < contInstIF))
{
JOptionPane.showMessageDialog(null, "A instituição que recebeu menos reclamações foram as "+
"Operadoras de Telefonia Celular."+
"\n O total de entrevistados foi de: " +cont+
"\n O por cento de reclamações para quem "+
"não conseguiu cancelar serviços foi de: " +porcento);
}
}
[quote=314ss]Não existe um número exato de entrevistados.
1 - Precisa imprimir a instituição que recebeu o menor número de reclamações.
2 - O Número total de entrevistados.
3 - O por cento representativo do tipo de reclamação: (“Não conseguiu efetuar cancelamento de serviço”).[/quote]
seu erro ta justamente nos iffs… se eu fizer uma pesquisa… de por exemplo 9 pessoas… e todas falaram que a telefonia é ruim… e ninguem falou das outras… logo… vc com esses if nao descobre isso…
a resposta das suas perguntas é simples… resolvi rapidamente…
a comparação vc faz < (menor) sendo que o correto é fazer com o (>)
[quote=314ss]O problema que ta ocorrendo é que o programa ta finalizando no while, ele não ta chegando nos ifs fora da repetição pra testar a condição dos if.
roda:
do
{
(instruções)
}
while (condição)
Exit program.
Mas ainda falta:
if
{
blabla… etc
[/quote]
cara… ta indo ate o final… o problema é o seus ifs vc ta falando assim … vamos supor que o contInst é 9… e o restante das variaveis é 0…
vai bater no ultimo if e vai falar contInst é menor que contInstME? a resposta é false… entao sai do laço do if… pois o &&(e) assim que ele bate no primeiro false ele assumi que nao corresponde a função e sai… se voce mudar a condição para contInst(9) é maior que contInstME(0)? sim vai pro proximo… constInst para contInst(9) é maior que contInstSS(0)?? sim… vai para o proximo parametro e pergunta contInst(9) é maior que contInstIF(0)? sim…
e entao entra no if… do contrario vai sair… vc precisa estudar mais logica de programação…
if ((contInst > contInstME) && (contInst > contInstSS) && (contInst > contInstIF)) {
JOptionPane.showMessageDialog(null, "A instituição que recebeu menos reclamações foram as " + "Operadoras de Telefonia Celular."
+ "\n O total de entrevistados foi de: " + cont + "\n O por cento de reclamações para quem " + "não conseguiu cancelar serviços foi de: " + porcento);
}
[quote=darklordkamui][quote=314ss]O problema que ta ocorrendo é que o programa ta finalizando no while, ele não ta chegando nos ifs fora da repetição pra testar a condição dos if.
roda:
do
{
(instruções)
}
while (condição)
Exit program.
Mas ainda falta:
if
{
blabla… etc
[/quote]
cara… ta indo ate o final… o problema é o seus ifs vc ta falando assim … vamos supor que o contInst é 9… e o restante das variaveis é 0…
vai bater no ultimo if e vai falar contInst é menor que contInstME? a resposta é false… entao sai do laço do if… pois o &&(e) assim que ele bate no primeiro false ele assumi que nao corresponde a função e sai… se voce mudar a condição para contInst(9) é maior que contInstME(0)? sim vai pro proximo… constInst para contInst(9) é maior que contInstSS(0)?? sim… vai para o proximo parametro e pergunta contInst(9) é maior que contInstIF(0)? sim…
e entao entra no if… do contrario vai sair… vc precisa estudar mais logica de programação…
if ((contInst > contInstME) && (contInst > contInstSS) && (contInst > contInstIF)) {
JOptionPane.showMessageDialog(null, "A instituição que recebeu menos reclamações foram as " + "Operadoras de Telefonia Celular."
+ "\n O total de entrevistados foi de: " + cont + "\n O por cento de reclamações para quem " + "não conseguiu cancelar serviços foi de: " + porcento);
}[/quote]
fora que vc vai ter um problema com a porcentagem… sempre vai ser 0… pois o int nao arredonda perfeitamente… tera que colocar um double e no final multiplicar por 100… para dar porcentagem correta
Entendi o que você disse perfeitamente, não tinha enxergado o problema de serem todas inicializadas em 0 e tal, usando seu exemplo consegui enxergar mais claramente o problema.