If else

6 respostas
M

Minha intenção foi criar um código para oferecer descontos de acordo com o numero de indicações, dependendo do curso:

exemplo

a pessoa escolhe ingles o curso é 120 reais, se ela conseguir 6 indicações a formula vai ser [color=red]// 6 a 10 1% por indicação
// 1,2 é 1% de 120!![/color]

ou seja 1.6 * indicações!

Mas esse não é o problema no código, eu ultilizei if else para limitar a quantidade de indicações de acordo com o desconto,

se ( indicações > 5 e indicaçoes < 10)
pessoa recebe 1.2 reais por indicação

na lógica seria perfeito, porém olha o pepino que acontece no código:

eu coloco o numero de indicações > indica = 15

no programa deveria calcular somente o ultimo if, pois [color=#444444]15 > 11 e < 21.[/color][color=darkred] [/color]

Más o programa calcula o desconto de todos ifs :shock:

if ((indica > 11) && (indica <21))

Eu não quero resposta pronta, se alguém souber onde está o pepino, por favor me de uma dica!!

Grato

package escolainglesrepete;

import javax.swing.JOptionPane;

public class EscolaInglesRepete {

    
    public static void main(String[] args) {
        
        String nome,curso,nome2;
        int indica, codigoaluno, codcurso,numeroindicacao,loops=0,nloop;
                double desconto,total;
        
        do 
        { 
        
        codigoaluno = Integer.parseInt(JOptionPane.showInputDialog(null, "Digite o código do aluno: "));
        
        nome = JOptionPane.showInputDialog(null, "Digite o nome do aluno :");
        
        JOptionPane.showMessageDialog(null, "Tabela de Cursos:" +
                                            "\n 1- Inglês." + 
                                            "\n 2-Espanhol" +
                                            "\n 3-Mandarim", "Cursos", JOptionPane.INFORMATION_MESSAGE);
        
        codcurso = Integer.parseInt(JOptionPane.showInputDialog(null, "Digite o código do curso: "));
        
        
        indica = Integer.parseInt(JOptionPane.showInputDialog(null, "Digite a quantidade de indicações do aluno " + nome));
        
       
        
        switch (codcurso)
        {
            case (1):  // curso ingles faça o calculo com 120R$
                
                if (indica < 6)
                {          
                    
                    desconto = 0.6 * indica; // o desconto será de 0.6 reais por indicação!!
                    
                    
                    total = 120.0 - desconto;
                    
                    JOptionPane.showMessageDialog(null, "O aluno " + nome + " tem direito há " + "R$, " + desconto  + "de desconto, "
                                      + "sua parcela será de : "+"R%" + total );
                    
                       
                   
                }
                else  
                    if ((indica > 5) && (indica <11));
                {
                    // 6 a 10 1% por indicação
                    // 1,2 é 1% de 120!!
                    
                    desconto =  1.2 * indica; // Usa ponto não virgula!!
                            /* o desconto sera de 1,2 reais  vezes o numero de indicações!!
                             * Exemplo .. 6 indicaçoes
                             * 
                             *  1,2 * 6 = 7,6 reais! se o aluno tiver 6 indicações seu desconto será de 7,2 reais
                             * 
                             * Segue este mesmo raciocinio para todos os ifs a seguir
                             * 
                             *  Abate 7,2 reais do total da parcela que é 120!
                             */
                    total = 120.0 - desconto;
                     JOptionPane.showMessageDialog(null, "O aluno " + nome + " tem direito há " + "R$, " + desconto  + " de desconto. "
                                      + "Sua parcela será de : "+"R$" + total );
                    
                    
                }
                
                if ((indica > 11) && (indica <21)); // 30 % é o limite maximo de desconto, portanto 20 indicações equivalem a 30 % de 120.
                {
                
                desconto = 1.8 * indica; // 1.8 é 1,5% de 120, o desconto será de 1.8 reais vezes o numero de indicações, para conseguir
                // 30% o maximo permitido, será 20 indicações, ao passar disso o desconto será de 30% de 120 é igual a 36 reais.
                
                total = 120.0 - desconto;
                
               JOptionPane.showMessageDialog(null, "O aluno " + nome + " tem direito há " + "R$, " + desconto  + " de desconto. "
                                      + "Sua parcela será de : "+"R$" + total );
                
            }
                           
                
                
                
 
        
        }
    
         nloop =   JOptionPane.showConfirmDialog(null, "Novo aluno  ?", "Cadastro", JOptionPane.YES_NO_OPTION);
        }
        
        while ( nloop ==0);
    }
}

6 Respostas

M

corrigindo

a pessoa escolhe ingles o curso é 120 reais, se ela conseguir 6 indicações a formula vai ser // 6 a 10 1% por indicação
// 1,2 é 1% de 120!!

ou seja 1.2 * indicações!

drsmachado
if(indica < 6) //se indica é menor que 6
(...)
if((indica > 5) && (indica <11);//detalhe para o ponto e vírgula. se indica é maior que 5 e, ao mesmo tempo, menor que 11
(...)
if ((indica > 11) && (indica <21));//de novo o ponto e vírgula. se indica é maior que 11 e, ao mesmo tempo, menor que 21

Chutando, pois não testei, teu problema é, com certeza, o ; após os ifs.

Fellipex
if(x){

} else if(y){

} else{

}
eduardocintramaia

É isso mesmo debuguei o código aqui o erro está nessas linhas aqui:

if ((indica > 5) && (indica <11));
if ((indica > 11) && (indica <21));

Só tirar o ;

Cara, só uma dica começa debuga os seus códigos que os erros aparecem.

Abrass.

M

debuga será rodar os codigos né? eu faço os codigos no netbeans e os erros vão aparecendo automaticamente tipo sempre aparece o ! la no canto e eu procuro o motivo do erro!
mas dessa vez o error parecia ser de logica, pois não aparecia nenhum error

eduardocintramaia

michaelrodrigues:
debuga será rodar os codigos né? eu faço os codigos no netbeans e os erros vão aparecendo automaticamente tipo sempre aparece o ! la no canto e eu procuro o motivo do erro!
mas dessa vez o error parecia ser de logica, pois não aparecia nenhum error

Não, debugar ou depurar é basicamente executar sua aplicação e ir acompanhando passo a passo as instruções executadas, nesse video ensina como debugar o código no eclipse e também netbeans:

Vai mudar sua vida isso, fica muito mais fácil encontrar erros.

Criado 18 de outubro de 2012
Ultima resposta 18 de out. de 2012
Respostas 6
Participantes 4