Pequena duvida num exercicio

Exercicio:

Escreva um aplicativo que localiza o menor de vários inteiros. Assuma que o primeiro valor lido especifica o numero de valores a serem inseridos pelo usuario.

Minha duvida é na parte de assumir o primeiro valor como o numero de valores a serem inseridos, não consigo fazer o loop contar corretamente.
Tentei fazer assim, mas não dar certo:

[code]import java.util.Scanner;

public class Menor
{
public static void main(String args[])
{
int num,menor=0;

	Scanner input = new Scanner(System.in);
	
	System.out.printf("Insira o numero de valores a ser analisados: ");
	num=input.nextInt();
	System.out.printf("\n1o numero: %d\n",num);
	menor=num;
	for(int a=1; a<=menor; a++)
	{  
	    
	    System.out.printf("%do numero: ",a);
	    num=input.nextInt();
	     
	     while(num < menor)
		  menor=num;
	}
	System.out.printf("\nO menor inteiro eh: %d\n",menor);
	
	
}

}[/code]

Seu problema é que você está alterando o valor da variável que controla quantas vezes o loop será executado. O caso está acontecendo aqui:

while(num < menor) menor=num;

Declare uma variável separada pra controlar o loop. Com uma mexidinha no código pode ficar tipo assim:

[code]
import java.util.Scanner;

public class Menor2
{
public static void main(String args[])
{
int num,menor,indice;

	Scanner input = new Scanner(System.in);

	System.out.printf("Insira o numero de valores a ser analisados: ");
	num=input.nextInt();
	System.out.printf("\n1o numero: %d\n",num);
	menor=num;
	indice=num;
	for(int a=2; a<=indice; a++)
	{

	    System.out.printf("%do numero: ",a);
	    num=input.nextInt();

	     if(num < menor)
		  	menor=num;
	}
	System.out.printf("\nO menor inteiro eh: %d\n",menor);


}

}[/code]

Deu certo , muito obrigado.

Quer dizer que duas variáveis podem assumir o valor de uma outra variável ao mesmo tempo, aqui no caso ‘menor=num’ e ‘indice=num’. Pensei que qdo ‘menor’ fosse igual a ‘num’, o ‘num’ passaria a ter um valor default.

Pois é. O valor de uma variável só se altera quando você manda isso acontecer.

Vamos supor:

int primeiraVariavel = 0;
int segundaVariavel;

primeiraVariavel = 5;
segundaVariavel = (primeiraVariavel+1);

O que acontece aqui… primeiraVariavel foi declarada e inicializada já com um valor; a saber, 0. segundaVariavel foi apenas declarada. Então mudamos o valor de primeiraVariavel para 5, e depois atribuímos à segundaVariavel a soma de primeiraVariavel + 1. Depois disso tudo, segundaVariavel vale 6 e primeiraVariavel continua valendo 5. Uma dica: quando as coisas não acontecerem do jeito que você espera, “printe” suas variáveis em determinados pontos de execução do seu código. É como armar ratoeiras e só ficar observando qual faz “PLÉC!!”

ok! Obrigado pelo esclarecimento e pelas dicas.
Até mais!!