Dúvida

3 respostas
B

Estou iniciando em java e o professor passou uma lista de exercícios e eu não estou conseguindo terminar esse..Ele não esta rodando como deveria(como eu acho que deveria)..A questão é:

Faça um algoritmo que pergunte a profissão e a quantidade de filhos que a pessoa possui. Quando a quantidade de filhos estiver entre 2 e 3, imprimir a mensagem : ?Você precisa de orientação sexual pois se a quantidade de filhos aumentar você perde a bonificação?. Quando formaior, mostrar: ?Você perdeu a bonificação?. Caso a quantidade de filhos esteja dentro do permitido, isto é, até 3, imprimir o reajuste do salário utilizando a fórmula (a). Caso contrário utilizar a fórmula (b): (a) Salário + Percentual de Ajuste * quantidade de filhos; (b) Salário +Percentual de Ajuste.

e eu fiz:

public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);

		System.out.println("Qual a sua profissão?");
		String prof = scan.next();
		
		double sal=0;
		double Reajuste = 0;
		double Total = 0;
		if (prof == "Contador") {
			Reajuste = 10;
		} else if (prof == "Médico") {
			Reajuste = 5.5;
		} else if (prof == "Advogado") {
			Reajuste = 5;
		} else if (prof == "Profissional de informática") {
			Reajuste = 20;
		} else if (prof == "Outros") {
			Reajuste = 7.5;
		}


		System.out.println("Qual o seu salário? ");
		sal = scan.nextDouble();

		System.out.println("Quantos filhos possui? ");
		int qt_filhos = scan.nextInt();
		
		
		if (qt_filhos >= 2 && qt_filhos <= 3) {
			Total = sal + (((sal * Reajuste) / 100) * qt_filhos);
			System.out.println("Você precisa de orientação sexual pois se a quantidade de filhos aumentar você perde sua bonificação!");
			System.out.println("Você receberá: R$" + Total);
		} else if (qt_filhos > 3) {
			Total = sal + (sal * Reajuste);
			System.out.println("Você perdeu sua bonificação!");
			System.out.println("Você receberá: R$" + Total);
		} else {
			Total = sal;
			System.out.println("Você receberá: R$" + Total);

		}

	}
}

Obrigada pela ajuda!

3 Respostas

hackum

Seja mais específico. Eu realmente não estou consiguindo entender a sua dúvida.

Até mais!

B

O programa não esta rodando como eu queria…ele não esta calculando o salário…não entra no laço…o salário final é igual ao salário inicial…

nel

Primeiro de tudo, não se usa ‘==’ para objetos, isso inclui wrappers (Integer, Long…), usa-se o método equals().
Por exemplo, você fez :

if (prof == "Contador") { Reajuste = 10; }

O correto é:

if (prof.equals("Contador")) { Reajuste = 10; }

Se quiser ignorar o “case sensitive”, troque o equals() por equalsIgnoreCase(). Faça essa alteração e teste novamente. De resto, se está gerando erro, poste-o, senão, informe os dados de entrada e o resultado que está obtendo, para analisarmos.

Abraços.

Criado 12 de abril de 2012
Ultima resposta 18 de abr. de 2012
Respostas 3
Participantes 3