Algorítimo não apresenta resultado no final

5 respostas Resolvido
Victor_S_C

Bom pessoal, sou iniciante no mundo de programação, e recentemente comecei fazer um curso técnico. O professor pediu um trabalho com o tema de restaurante. Elaborei o código, de acorodo com as informações que ele passou (tentei) Porém ao chegar no final ele simplesmente não faz a somatoria e me retorna um valor “0”

Segue o código:

public class Exercicio7 {

public Exercicio7(){

String nome, entrada, principal, sobremesa, gorjeta;

double ve = 0, vp = 0, vs = 0, total = 0;

Scanner leia = new Scanner(<a href="http://System.in">System.in</a>);

System.out.println(Digite o seu nome);

nome = leia.nextLine();

System.out.println(Digite a entrada);

entrada = leia.next();

{if (entrada == salada)

ve = 15;}

{if (entrada == sopa)

ve = 20;}

{if (entrada == antipasto)

ve = 25;}

System.out.println(Digite o prato principal);

principal = leia.next();

{if (principal == peixe)

vp = 45;}

{if (principal == carne)

vp = 50;}

{if (principal == massa)

vp = 40;}

System.out.println(Digite a sobremesa);

sobremesa = leia.next();

{if (sobremesa == sorvete)

vs = 12;}

{if (sobremesa == pudim)

vs = 8;}

{if (sobremesa == rapadura)

vs = 16;}

System.out.println(Deseja adicionar a gorjeta?);

gorjeta = leia.next();

{if (gorjeta == sim)

total = ((ve+vp+vs)*0.10);

else

total = (ve+vp+vs);

System.out.println("Sr(a): “+nome+”, a facada ficou em: "+total);}
}
        }

5 Respostas

S
Solucao aceita

não seria assim?

if(entrada.equals("salada"){
      //Faz algo
}

Obs: Quando se compara Strings é melhor usar .equals

Mint

Bom, aí está! Mas vale lembrar que multiplicando tudo por 0.1 você vai estar recebendo na variavel total somente 10% do valor total. Para adicionar corretamente 10% do valor como gojeta revise a conta de porcentagem.

public class TestGUJ {
    private String nome, entrada, principal, sobremesa, gorjeta;
    private float ve, vp, vs, total;
    private Scanner scanner;

    public TestGUJ() {
        ve = 0;
        vp = 0;
        vs = 0;
        total = 0;

        scanner = new Scanner(System.in);
        System.out.print("Digite o seu nome: ");
        nome = scanner.nextLine();

        registraPratoDeEntrada();
        registraPratoPrincipal();
        registraSobremesa();
        checarAGorjeta();

        System.out.println("Sr(a). " + nome + ", a facada ficou em: " + total + " R$.");
    }

    private void registraPratoDeEntrada() {
        System.out.print("\nDigite a entrada: ");
        entrada = scanner.nextLine();

        switch (entrada) {
            case "salada":
                ve = 15;
                break;

            case "sopa":
                ve = 20;
                break;

            case "antipasto":
                ve = 25;
                break;

            default:
                System.err.println("Prato de entrada inválido!");
                registraPratoDeEntrada();
                //Caso a entrada for inválida ele chama o método denovo infinitamente até
                //uma entrada valida ser colocada.
        }
    }

    private void registraPratoPrincipal() {
        System.out.print("\nDigite o prato principal: ");
        principal = scanner.nextLine();

        switch (principal) {
            case "peixe":
                vp = 45;
                break;

            case "carne":
                vp = 50;
                break;

            case "massa":
                vp = 40;
                break;

            default:
                System.err.println("Prato principal inválido!");
                registraPratoDeEntrada();
                //Caso a entrada for inválida ele chama o método denovo infinitamente até
                //uma entrada valida ser colocada.
        }
    }

    private void registraSobremesa() {
        System.out.print("\nDigite a sobremesa: ");
        sobremesa = scanner.nextLine();

        switch (sobremesa) {
            case "sorvete":
                vs = 12;
                break;

            case "pudim":
                vs = 8;
                break;

            case "rapadura":
                vs = 16;
                break;

            default:
                System.err.println("Prato de sobremesa inválido!");
                registraPratoDeEntrada();
                //Caso a entrada for inválida ele chama o método denovo infinitamente até
                //uma entrada valida ser colocada.
        }
    }

    private void checarAGorjeta() {
        System.out.print("\nDeseja dar uma gorjeta? ");
        gorjeta = scanner.nextLine();
        if(gorjeta.equals("sim") || gorjeta.equals("Sim")) {
            total = (float) ((ve + vp + vs) * 0.1);
        } else {
            total = (float) ((ve + vp + vs) * 0.1);
        }
    }

    public static void main(String[] args) {
        new TestGUJ();
    }
}

Comprovovação:

Victor_S_C

Era isso mesmo!, Muito obrigado pela ajuda.

Victor_S_C

Obrigado pela sugestão Mint, acabei aproveitando algumas partes do seu código e corrigi aonde fazia a soma.

Mint

Hehe de nada amigo! Bons códigos.

Criado 25 de abril de 2018
Ultima resposta 26 de abr. de 2018
Respostas 5
Participantes 3