Achar o menor número digitado

Bom pessoal queria uma dica/ajuda nesse meu código

import acm.program.*;

public class compararMenor extends ConsoleProgram {
	public void run() {
		String confirma = "";
		int numero, comparador = 0, extra;
		
		do{
			numero = readInt("Qual o seu número? ");
			extra = numero;
			for(int i=0;i<extra;i++){
				comparador++;
			}
			if(numero<=comparador){
				comparador=numero;
			}
				
			confirma = readLine("Deseja refazer a ação? ");			
		}while(confirma.equals("Sim"));
		
		println("O menor número digitado foi: " + comparador);
	}
}	

O objetivo seria o usuário digitar N números e o programar mostrar o menor número digitado.
EXEMPLO:
5 8 -35 4 0
Menor numero é -35

Eu faria diferente, colocaria os numeros digitados em um Array de inteiros e depois faria os testes. No exemplo não citei a parte em que o usuario informa os numeros, esta como se já estivesse feito.

       
   menorNumero=numeros[0];
   for(int i=1;o&lt;numeros.size()-1;i++){
      if (numeros[i]&lt;menorNumero){
          menorNumero=numeros[i];
      }
   }
//segue o codigo para mostrar os numeros e o menor

>>

int menor = numeros.get(0);

for(int numero : numeros) {

menor = Math.min(menor, numero);

}

Seguindo o seu raciocínio, basta retirar este bloco de código:

extra = numero;  
for(int i=0;i<extra;i++){  
     comparador++;  
} 

E utilizar um numero alto para o comparador:
int comparador = 9999999;

Claro que existe método bem melhor para se fazer isto. Respondi apenas em cima do seu raciocínio.

Att.

Eu faria assim

import java.util.Scanner;

public class CompararMenor {// nome de Classe começado com letra maiuscula CamelCase
	public static void main(String[] args) {
		String iterar;
		int menor;
		int aux;
		Scanner input = new Scanner(System.in);
		//para compara qual o menor ele precisa ter pelomenos 2 numeros
			System.out.println("Digite um valor");
			menor = input.nextInt();

			do{
				System.out.println("Digite um valor");
				aux = input.nextInt();
				
				if(aux<menor)
					menor=aux;	
				
				System.out.println("Deseja inserir outro numero?\nsim ou não");
				iterar = input.next();
			}while(iterar.equals("sim"));
		
			System.out.printf("Menor valor é %d",menor);
	}
}//fim da classe

Ou pode fazer sem sacrifício algum.

[code]import java.util.ArrayList;
import java.util.Collections;
import java.util.Scanner;

public class Aplicacao {

public static void main(String[] args) {

	int valor;  
	String s = "s";
	ArrayList<Integer> buff = new ArrayList<Integer>();//Ciramos um ArrayList para armazenar quantos valores forem preciso.
	
    Scanner input = new Scanner(System.in);  
    
    do{
    System.out.println("Digite um valor:");  
    valor = input.nextInt();
    
    buff.add(valor); // Adicionamos o valor lido dentor do array.
    
    System.out.println("Deseja digitar um novo valor? S/N");
    s = input.next();
    }while(s.equalsIgnoreCase("s"));
    
    System.out.println("O menor valor digitado é: " + Collections.min(buff));// E com o Collections.min recuperamos o menor valor dentro desse array.

    
}

}
[/code]

Aconselho você apenas entender as logicas postadas e desenvolver sua própria solução para seu problema. :slight_smile:

To começando java agora, ai eu procuro faze um solução em pseudocodigo e transformar pro java, mais valew ai galera.

weslly99
pra que serve esse seu %d ?

 System.out.printf("Menor valor é %d",menor);  

[quote=kixtz]To começando java agora, ai eu procuro faze um solução em pseudocodigo e transformar pro java, mais valew ai galera.

weslly99
pra que serve esse seu %d ?

 System.out.printf("Menor valor é %d",menor);  

printf imprime na tela a mensagem formatada então o %d e um marcador de lugar que significa Inteiro Decimal. No caso menor e um int que e um valor inteiro decimal.
Tbm existe
%f para pontos flutuantes (double, float)
%s String
%c char
tem vários outros da uma olhadinha aqui http://docs.oracle.com/javase/6/docs/api/java/util/Formatter.html#syntax na parte de convenção ele diz cada um