Why does this algorithm skip the if?

Asked

Viewed 45 times

2

import java.util.Scanner;

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

        String produto, nome, resp;
        double desconto, acrecimo, preco, novoPreco = 0;

        System.out.println("-------------------------------------------------------------");
        System.out.println("                      LOJA DE 1,99");
        System.out.println("-------------------------------------------------------------");
        System.out.println();

        System.out.print("Qual o seu nome meu chapa: ");
        nome = le.nextLine();

        System.out.print(nome + ", qual o nome do produto que quer comprar: ");
        produto = le.nextLine();

        System.out.print(nome + ", qual o preço normal de 1 " + produto + ": ");
        preco = le.nextDouble();

        System.out.print(nome + ", você quer dar um desconto >des< ou um acrécimo >aum< no valor total do seu produto? > ");
        resp = le.nextLine();

        System.out.println();

        if (resp == "des") {
            System.out.print("e ai meu chapa, de quantos por cento irá ser o seu desconto: ");
            desconto = le.nextDouble();
            novoPreco = preco - (preco * desconto / 100);
        }

        if (resp == "aum") {
            System.out.print("e ai meu chapa, de quantos por cento vai ser o seu aumento: ");
            acrecimo = le.nextDouble();
            novoPreco = preco + (preco * acrecimo / 100);

        }

        System.out.println(nome + ", o " + produto + " que valia R$" + preco + " agora vale: R$" + novoPreco);

    }
}

Console output:

----------------SHOP OF 1.99 ----------------

What is your name my plate: Lucas Lucas, which is the name of the product that Want to buy: nescal Ucas, what is the normal price of 1 nescal: 10.0 Lucas, you want to give a discount >des< or an accretion >a< in value total of your product? > Ucas, the nescal that was worth R$10.0 is now worth: R$0.0, above is what the console does.

  • 2

    if (resp == "des") and if (resp == "aum") - Basically, never compare strings to == or with the !=. Use the method equals as explained in the issue I marked as duplicate.

No answers

Browser other questions tagged

You are not signed in. Login or sign up in order to post.