Ir ao conteúdo

Posts recomendados

Postado

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
Postado

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
  • 1 ano depois...
Postado

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

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...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!