Como exibir o retorno de uma variável tipo boolean em uma função

A questão pede para fazer uma função que recebe um número inteiro por parâmetro e retorna verdadeiro se ele
for par e falso se for ímpar.
Não estou conseguindo exibir da maneira correta se é true or false o retorno da função dentro do método main . Segue o código…

package aula_metodo;

/*
  Faça uma função que recebe um número inteiro por parâmetro e retorna verdadeiro se ele 
  for par e falso se for ímpar.
 */
import java.util.Scanner;

public class Atividade02 {
	static boolean parimpar(int a) {
	     
		if(a%2==0) {
			
		return true;	
			
		} else {
			
			return false;
		}
		
	}

	public static void main(String[] args) {
		
		Scanner input = new Scanner(System.in);
		int num  ;
		
		 System.out.println("Informe um número :");
		 
	        num=input.nextInt();
		
		parimpar(num);
		
		System.out.println(" o número é : " + num); // porque não está retornando?
		
		
		
	}
	
	

}

Alguém poderia me ajudar?

Você não está pegando o retorno da sua função parimpar, você pode criar uma nova variável para isso, ou apenas colocar a chamada da função direto no System.out.println.

import java.util.Scanner;

public class Atividade02 {
    static boolean parimpar(int a) {
	     
		if(a%2==0) {
			
		    return true;	
			
		} else {
			
			return false;
		}
		
	}
	
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        int num;
		
        System.out.println("Informe um número :");
		 
        num=input.nextInt();
		
        System.out.println(" o número é : " + parimpar(num));
    }
}
1 curtida

Vc está chamando o método, mas não está atribuindo o retorno dele a nenhuma variável. Ou seja, o resultado “se perde”. Então deveria verificar se o retorno é true ou false, e aí indicar se é par ou ímpar, algo assim:

String resultado;
if (parimpar(num)) {
    resultado = "par";
} else {
    resultado = "ímpar";
}
System.out.println(" o número é : " + resultado);

Claro que você poderia imprimir o resultado do método (System.out.println(" o número é : " + parimpar(num))), mas aí o programa iria imprimir “o número é true” ou “o número é false”, o que não é uma mensagem muito clara e nem útil. Eu preferi alterar para mostrar um texto que diga exatamente o que o número é (par ou ímpar).


Ou, se é só para imprimir e não for usar o resultado para mais nada, nem precisa de variável:

System.out.println(" o número é : " + (parimpar(num) ? "par" : "ímpar"));

Outra coisa, quando você tem algo como:

if (condicao)
    return true;
else
    return false;

Pode trocar por return condicao (já que condicao é um valor booleano). Ou seja, o método poderia ser:

static boolean parimpar(int a) {
    return a % 2 == 0;
}

Afinal, o resultado da comparação é um booleano (será true ou false), então pode retornar diretamente, sem precisar de if/else.


Por fim, como o método retorna true se o número é par, então parimpar não é um bom nome (poderia ser apenas ehPar ou isPar, etc).

1 curtida

Muito obrigado Lucas pelo esclarecimento.

1 curtida

Obrigado @hugokotsubo pela explicação. Agora consegui entender onde estava errando!