Preciso de ajuda nesse exercicio de controle de fluxo

3 respostas
G

Ta dando erro na hora de compilar, o exercicio seria isso

Faça um algoritmo que leia o salario e o cargo de um funcionario e calcule o novo salario. Se o cargo do funcionario nao estiver na tabela, ele devera,entao, receber 40% de aumento. Mostre o salario antigo, o novo e a diferença
Tabela:
Codigo/cargo/Reajuste
101 Gerente 10%
102 Engenheiro 20%
103 Técnico 30%

Entao fiz o seguinte:

import java.util.Scanner;
public class reajusteSalarial {
	public static void main(String args[]) {
		Scanner teclado = new Scanner(System.in);
		
		System.out.println("Informe seu cargo digitando o respectivo Codigo");
		byte codigo = teclado.nextByte();
		System.out.println("Informe seu salario para o reajuste:");
		double salario = teclado.nextDouble();
		
		switch (codigo) {
		
		case 101: 
			int reajuste = salario * 0.1;
			System.out.println("Seu cargo é Gerente");
			System.out.println("Com reajuste seu salario agora é: " + reajuste);
			break;
		case 102: 
			int reajuste1 = salario * 0.2;
			System.out.println("Seu cargo é de Engenheiro");
			System.out.println("Com reajuste seu salario agora é: " + reajuste1);
			break;
		case 103: 
			int reajuste2 = salario * 0.3;
			System.out.println("Seu cargo é de Técnico");
			System.out.println("Com reajuste seu salario agora é: " + reajuste2);
			break;
		default:
			int reajuste3 = salario * 0.4;
			System.out.println("Com reajuste seu salario agora é: " + reajuste3);
			}
		}
	}

esta ocorrendo o seguinte erro:

C:\Users\casa>javac reajusteSalarial.java
reajusteSalarial.java:14: possible loss of precision
found   : double
required: int
                        int reajuste = (salario * 0.1);
                                                ^
reajusteSalarial.java:19: possible loss of precision
found   : double
required: int
                        int reajuste1 = (salario * 0.2);
                                                 ^
reajusteSalarial.java:24: possible loss of precision
found   : double
required: int
                        int reajuste2 = (salario * 0.3);
                                                 ^
reajusteSalarial.java:29: possible loss of precision
found   : double
required: int
                        int reajuste3 = (salario * 0.4);
                                                 ^
4 errors

O que poderia ser? alguem me da essa força?

3 Respostas

G

Resolvido, troquei a variavel interna do switch de int pra double, foi viajem minha

mas aproveitando a questao, teria um modo mais “resumido” para se fazer isso?

na hora de compilar so aparece o valor o valor do reajuste, e nao salario (somado) com reajuste

no aguardo da luz

stelio.correa

GabeDevelop,

A única coisa que tens que mudar são os tipos da variáveis reajuste, elas recebem double e vc as declarou como int. Fiz essa mudança e resolveu. Abrs espero ter ajudado.

stelio.correa
System.out.println("Com reajuste seu salario agora é: " + (reajuste + salario));
Criado 9 de abril de 2011
Ultima resposta 9 de abr. de 2011
Respostas 3
Participantes 2