Utilização do Boolean - Java (POO)?

Estou com dificuldade com um exercício da faculdade, eu gostaria que o usuário digitasse se o Iate contém piscina ou não, receber e ler essa informação.
Poderia me ajudar, por favor?

public void Piscina (boolean sim, boolean nao){
         System.out.println("Piscina: ");
         if (sim=true){
             System.out.println("O Iate tem piscina:");
             if (nao=false){
                     System.out.println("Não tem piscina:");
            }
       }
}

Cuidado com as chaves, do jeito que está você colocou um if dentro do outro…

Cuidado também com o sinal de =, ele é de atribuição/definição de valores e não de comparação, para isso use ==

Podemos melhorar seu código assim…

public void Piscina (boolean temPiscina) {
    System.out.println("Piscina: ");
    if (temPiscina) {
        System.out.println("O Iate tem piscina:");
    } else {
        System.out.println("Não tem piscina:");
    }
}

O if modificado seria o mesmo que…

if (temPiscina == true) {
    ...

E o else faz o que o seu segundo if faria caso não tenha piscina (false)…

E você não precisa ter dois booleanos para testar uma única condição… clareou um pouco mais?

4 curtidas

Pelo que eu percebi, Piscina é um objeto fora do main. Você quer chamar ele para calcular verdadeiro ou falso (se tem ou não piscina). Do jeito que está estruturado você precisa ter definida uma variável, já iniciada, no método que vai chamar o Piscina. Algo mais ou menos assim:

package javaapplication;

/**
 *
 * @author Thomas Santos
 */
public class NovoMain {

    public static void main(String[] args) {
        boolean piscina = true;
        Piscina(piscina);
    }
    static void Piscina(boolean comparador) {
        System.out.print("Piscina: ");
        if(comparador == true) {
            System.out.println("O Iate tem piscina.");
        }else {
            System.out.println("O Iate não tem piscina.");
        }
    }
}

Ae com relação ao usuário informar se tem ou não, você modifica a variável piscina:

boolean piscina = true;

Tipo, considere entradaUser, como o usuário informando se tem ou não piscina:

if(entradaUser == sim) {
    piscina = true;
}else { 
    piscina = false;
}

E pela lógica bizarra kk, tem algumas coisas “erradas” no código. O sinal = é diferente de ==
= é usado para atribuir valor, iniciar uma variável. Tipo:

int x = 3;

Está dizendo que x vale 3. E o == é o comparador usado para verificar igualdade:

if(x == 1) {
    System.out.print("Parece difícil, mas depois fica legal.");
}

Tá dizendo que se a variável x for igual a 1, é para fazer o Sytem.out.print.

Nos argumentos do “Piscina”, você só precisa requisitar um, o boolean já vem como verdadeiro ou falso, não precisa definir uma para cada situação. Cuidado com o if dentro do outro, porque nesse caso o segundo if só iria ser executado se o primeiro fosse verdadeiro.

Enfim, espero ter ajudado. Vlw.

2 curtidas

Poxa, muito obrigada, no caso do “==” foi falta de atenção, mas me ajudou muito!:grinning:

Obrigada pessoal! :heart: