Mostrar o devido resultado corretamente

Olá amigos do GUJ.

Venho novamente pedir ajuda, com um algoritmo que estive fazendo. O que devo fazer para que o resultado da divisão dos meus valores dê o devido resultado da divisão. Porque quando vou rodar o código, a divisão sempre fica 0. O que devo fazer para que resulte na divisão correta dos meus valores?

import java.util.Scanner;

public class Tarefa_de_casa2 {
	public static Scanner leia = new Scanner(System.in);
	
	/* 1 - ler dois valores inteiros
	 * 2 - se primeiro valor maior que o segundo, exibir o produto deles.
	 * 3 - se segundo valor maior que primeiro, exibir a razão deles.
	 */
	public static float verificar(int v1, int v2){
		if(v1 > v2) {
			return v1*v2;
		} else {
			return v1/v2;
		}
	}
	
	public static void main(String args[]){
		int v1, v2;
		System.out.println("Digite o primeiro valor: ");
		v1 = leia.nextInt();
		System.out.println("Digite o segundo valor: ");
		v2 = leia.nextInt();
		System.out.println("O retorno para os valores dados é: " + verificar(v1,v2));
	}
}

Esse código resulta no seguinte, que no caso é um teste do problema em questão:

Digite o primeiro valor: 
2
Digite o segundo valor: 
5
O retorno para os valores dados é: 0.0

Deveria mostrar 0.4 e não 0.0.

Olá happy_day.
Muda a assinatura do método verificar para receber parâmetros float.
Divisão de 2 números do tipo inteiro da o resultado de um número inteiro desprezando a parte fracionária.
Por isso que no seu caso ta dando o resultado 0.0
Caso você faça a divisão 5/2 do jeito que está daria 2.0 como resultado e não 2.5

Uma solução para o problema seria:

public static float verificar(float v1, float v2)

Outra forma seria:

public static float verificar(int v1, int v2){
    	float a = v1;
    	float b = v2;
    	if(a > b){
    		return a*b;
    	}else{
    		return a/b;
    	}
    }
1 curtida

Muito obrigado magalhas, ajudou-me muito! :grinning: