1
resposta

if(conseguiuRetirar = true)

Fiz o seguinte código, para testar mais essa parte de métodos, achei muito estranho que o if(conseguiuRetirar = true) que fiz quando da true ele não faz a parte do true e sim a do false e vise versa, só resolveu quando coloque assim, if(conseguiuRetirar), queria uma explicação de porque não foi entendido pelo java o true como sendo true, e tendo o comportamento inverso.

package alura;

public class TestaMetodo {

    public static void main(String[] args) {
        Conta contaDoCristian = new Conta();
        contaDoCristian.saldo = 100;
        contaDoCristian.deposita(50);
        System.out.println(contaDoCristian.saldo);

        double valorSacar = 1000;
        boolean conseguiuRetirar = contaDoCristian.saca(valorSacar);
        System.out.println(contaDoCristian.saldo);
        System.out.println(conseguiuRetirar);
        if(conseguiuRetirar = true){
        System.out.println("Saque efetuado com sucesso, Saldo atual = R$" + contaDoCristian.saldo);
        System.out.println("Valor sacado = R$" + valorSacar);
        }
        else {
            System.out.println("Saque NÃO efetuado, Saldo atual = R$" + contaDoCristian.saldo);
            System.out.println("Valor que tentou sacar de R$" + valorSacar + "é maior que o saldo disponível atual de R$" + contaDoCristian.saldo);
        }
    }

}

saida:

150.0

150.0

false <----------- Retorno do Método saca

Saque efetuado com sucesso, Saldo atual = R$150.0

Valor sacado = R$1000.0

1 resposta

Boa Tarde Katiana,

O java não entendeu o seu if pois o símbolo para comparar duas coisas é o "==" e não o "=" como usado no exemplo.

Apesar disso acho que usar somente o conseguiuRetirar dentro do if é mais interessante, pois de qualquer forma ele vai te retornar se conseguiu ou não retirar então fazer a verificação com o true seria uma redundância.