Ir ao conteúdo
  • Cadastre-se

Exercício de Java em NetBeans


Posts recomendados

Olá  estou estudando Java no NetBeans e tenho de resolver o seguinte exercicio

 

7 - Uma empresa concederá um aumento variável de salário aos seus funcionários, de acordo com o cargo, conforme a tabela abaixo. Faça um programa que leia o salário e o código do cargo de um funcionário e calcule o novo salário. Se o cargo do funcionário não estiver na tabela, ele deverá, então, receber 40% de aumento. Mostre o salário antigo, o novo salário e a diferença. (faça usando as condicionais – switch e composta, isto é você fará dois programas separadamente)

 

Estou escrevendo a composta e isso foi o que fiz

 

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package listadeexercicios2;

import java.util.Scanner;

/**
 *
 * @author Agusto
 */
public class Exercicio7composta {

    public static void main(String[] args) {
        // TODO code application logic here int num1;
        int salario;
        int codigo;
        double Gerente;
        double Engenheiro;
        double Tecnico;
        double Funcionario;
        double Soma1;
        double Soma2;
        double Soma3;
        double Soma4;

        Scanner conta = new Scanner(System.in);

        System.out.print("Digite o salário do funcionario: ");
        salario = conta.nextInt();

        System.out.println("101 - Gerente");
        System.out.println("102 - Engenheiro");
        System.out.println("103 - Técnico");

        System.out.println("");
        codigo = conta.nextInt();

        if ((codigo > 100) && (codigo < 102)) {
            Gerente = salario * 10/100;
            Soma1 = salario + Gerente;
            System.out.println("Cargo de Gerente ");
            System.out.println("O salario do funcionario é de " + salario);
            System.out.println(" O bonús é de " + Gerente);
            System.out.println(" O salario final é de " + Soma1);
        }
        if ((codigo > 101) && (codigo < 103)) {
            Engenheiro = salario * 10/100;
            Soma2 = salario + Engenheiro;
            System.out.println("Cargo de Engeneiro ");
            System.out.println("O salario do funcionario é de " + salario);
            System.out.println("O bonús é de " + Engenheiro);
            System.out.println(" O salario final é de " + Soma2);
        }
        if ((codigo > 102) && (codigo < 104)) {
            Tecnico = salario * 30/100;
            Soma3 = salario + Tecnico;
            System.out.println("Cargo de Técnico ");
            System.out.println("O salario do funcionario é de " + salario);
            System.out.println("O salario do funcionario é de " + salario);
            System.out.println(" O bonús é de " + Tecnico);
            System.out.println(" O salario final é de " + Soma3);
        }
        if ((codigo >= 104) && (codigo <= 100)) {
            Funcionario = salario * 40/100;
            Soma4 = salario + Funcionario;
            System.out.println("Cargo Qualquer ");
            System.out.println("O salario do funcionario é de " + salario);
            System.out.println(" O bonús é de " + Funcionario);
            System.out.println(" O salario final é de " + Soma4);

        }

    }
}

o problema que eu tenho é com esse parte

 

  if ((codigo >= 104) && (codigo <= 100)) {
            Funcionario = salario * 40/100;
            Soma4 = salario + Funcionario;
            System.out.println("Cargo Qualquer ");
            System.out.println("O salario do funcionario é de " + salario);
            System.out.println(" O bonús é de " + Funcionario);
            System.out.println(" O salario final é de " + Soma4);

        }

Quando digito o código diferente dos 3 primeiro ele não roda nada, não sei poque não esta lendo. se alguem souber me ajude.

 

 

 

Captura de Tela (1).png

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Encadeie os if que fica tudo mais simples..

 

if (codigo == 101) {
            
} else if (codigo == 102) {
           
} else if (codigo == 103) {
            
} else {
       
}

Os seus if estão bem confusos. Se você quer identificar se um código está entre o 101 e o 103 e os números são inteiros, você procura EXATAMENTE pelo 102, e não algo maior que 101 E menor que 103.

 

No exemplo acima, você tem um if para o 101, um para o 102, um para o 103 e outro (o else no fim) para qualquer outro código que não seja nenhum desses três (101, 102, 103).

 

Isso já resolve seu problema.

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

  • 1 ano depois...

Um outro jeito de fazer seria:


import java.util.Scanner;


public class ExAumento {


    public static void main(String[] args) {


        double salario;
        int codigo;
        double Gerente;
        double Engenheiro;
        double Tecnico;
        double Funcionario;

        Scanner conta = new Scanner(System.in);
        
        System.out.print("Digite o salário do funcionario: ");
        salario = conta.nextDouble();
        System.out.println("Escolha o cargo do funcionario seguindo a tabela abaixo\n1 - Gerente\n2 - Engenheiro\n3 - Tecnico\n4 - Outro Cargo");
        codigo = conta.nextInt();
        
        switch(codigo){
            case 1:
            
                Gerente = salario + (salario * 10/100);
                System.out.println("Cargo de Gerente ");
                System.out.println("O salario do funcionario é de " + salario);
                System.out.println(" O bonús é de 10%");
                System.out.println(" O salario final é de " + Gerente);
                break;
        
            case 2:
                Engenheiro = salario + (salario * 10/100);
                System.out.println("Cargo de Engeneiro ");
                System.out.println("O salario do funcionario é de " + salario);
                System.out.println("O bonús é de 10%");
                System.out.println(" O salario final é de " + Engenheiro);
                break;
        
            case 3:
                Tecnico = salario + (salario * 30/100);
                System.out.println("Cargo de Técnico ");
                System.out.println("O salario do funcionario é de " + salario);
                System.out.println(" O bonús é de 30%");
                System.out.println(" O salario final é de " + Tecnico);
                break;
        
            case 4:
                Funcionario = salario + (salario * 40/100);
                System.out.println("Cargo Qualquer ");
                System.out.println("O salario do funcionario é de " + salario);
                System.out.println(" O bonús é de 40%");
                System.out.println(" O salario final é de " + Funcionario);
                break;
                
            default:
                System.out.println("Codigo Invalido");
                System.exit(0);

    }
    
}
}

 

Acho que dessa maneira seria mais pratico. ;)

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...