Pegar o menor valor

boa tarde pessoal, alguem saberia me dizer o porque meu codigo esta dando errado ? tenho pegar o menor numero e mostrar no console, porem ele sempre pega o numero 0.

    package EstruturasDeControle.Exercicios;

    import java.util.Scanner;

    public class MaiorValoreMenorValor {

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

    		int numero = 0;
    		int menorNumero = 0;
    		
    		do {
    			System.out.println("Digite alguns números: ");
    			numero = entrada.nextInt();
    			
    			if (numero < menorNumero && numero != -1) {
    				menorNumero = numero;
    			}
    			
    		} while (numero != -1);
    		
    		System.out.println(menorNumero);
    		
    		entrada.close();
    		
    	}
    }

você pode primeiro ir armazenando estes valores digitados num array, e depois vc ordena em ordem crescente e no print final vc imprimi o indice zero do array que seria o de menor valor. Isso seria uma alternativa mais fácil

O menorNumero começa em zero. O que acontece se você só digitar números positivos? Nunca vai entrar no if, pois nenhum número digitado será menor que zero.

Então basta inicializá-lo com um número bem grande, para garantir que na primeira iteração qualquer valor digitado seja menor que ele. Uma alternativa é usar o maior valor possível para um int:

int menorNumero = Integer.MAX_VALUE;
do {
    etc...
1 curtida

Sempre te retorna 0 pois a sua variável começa como o valor de 0, então independente de qualquer número q vc por nunca vai ser menor que o ZERO que é o valor inicial da variável.

Muito obrigado !!!