2
respostas

Código Eclipse.

Galera, boa noite.

Preciso de uma ajuda, criei esse código... talvez não seja bom, mas é para praticar mesmo (iniciando)...ocorre um erro no Switch (digitefuncao) = t.next();. Quando rodo o código eu não consigo escrever a função da pessoa com espaço por exemplo "Analista Desenvolvedor Sr" ele da erro, porém quando eu rodo o nome junto "AnalistaDesenvolvedorSr" ele não apresenta erro. Podem me ajudar por favor. O código está rodando normal estou com esse problema do espaço.

import java.util.Scanner;

public class CargosSalarios {

    public static void main(String[] args) {

        double aumento, novosalario = 0;
        int opcao = 0;
        String digitefuncao = null;
        int qtdsalario = 100000;
        double salario[] = new double[qtdsalario];

        System.out.println("=============================");
        System.out.println("=======               =======");
        System.out.println("=======   Bem vindo   =======");
        System.out.println("=======               =======");
        System.out.println("=============================\n");

        System.out.println("Menu de opções. Digite a opção que deseja:");
        System.out.println("1 - T.I.");
        System.out.println("2 - Administrativo.");
        System.out.println("3 - Recursos Humanos.");
        System.out.println("4 - Financeiro.");
        System.out.println("5 - Jurídico.");

        System.out.println("Digite a opção:");
        Scanner t = new Scanner(System.in);
        opcao = t.nextInt();

        switch (opcao) {
        case 1:
            System.out.println("Digite a sua função em T.I:");
            digitefuncao = t.next();
            break;
        case 2:
            System.out.println("Digite a sua função em ADM:");
            digitefuncao = t.next();
            break;
        case 3:
            System.out.println("Digite a sua função em RH:");
            digitefuncao = t.next();
            break;
        case 4:
            System.out.println("Digite a sua função em Financeiro:");
            digitefuncao = t.next();

            break;
        case 5:
            System.out.println("Digite a sua função em Jurídico:");
            digitefuncao = t.next();
            break;

        default:
            System.out.println("Opção inválida!");
            break;
        }

        if (opcao < 6 && opcao > 0) {
            System.out.println("Digite a quantidade de salários que deseja: ");
            qtdsalario = t.nextInt();
            for (int i = 0; i < qtdsalario; i++) {

                if (i == 0) {
                    System.out.println("Digite o salário:");
                    salario[i] = t.nextDouble();
                } else {
                    System.out.println("Digite um novo salário:");
                    salario[i] = t.nextDouble();
                }
                System.out.println("Digite o percentual de aumento:");
                aumento = t.nextDouble();
                aumento = aumento / 100;
                novosalario = (salario[i] * aumento) + salario[i];

                System.out.println("A sua função é: " + digitefuncao);
                System.out.println("O salario antes do aumento era: " + salario[i]);
                System.out.println("O novo salario é: " + novosalario);

            }
        }
        t.close();
    }
}
2 respostas

Amigo, bom dia!

Tente na função do scanner, em vez de:

digitefuncao = t.next();

Usar o:

digitefuncao = t.nextLine();

Abraços!

Boa noite Rodrigo,

Cheguei a usar o Line mas quando realizo ele pula essa opção. Por exemplo abaixo o código executado ele pula a opção de digitar a função

case 1: System.out.println("Digite a sua função em T.I:"); digitefuncao = t.nextLine();

=============================

=======

Bem vindo =======

=======

Menu de opções. Digite a opção que deseja: 1 - T.I. 2 - Administrativo. 3 - Recursos Humanos. 4 - Financeiro. 5 - Jurídico. Digite a opção: 1 Digite a sua função em T.I: Digite a quantidade de salários que deseja: