Guardar valores dentro de uma variável em um while ou for

14 respostas
hackum

Olá,

Desejo guardar valores dentro de uma variável, fazendo com que o número guardado na variável anterior não seja perdido. Vamos lá um exemplo:

import java.util.Scanner;
public class test {
	
	public static void main(String args[])
	{
		
		Scanner input = new Scanner(System.in);
		
		int counter = 0;
		
		while(counter <= 10)
		{
			System.out.println("Digite o número para ser somado!");
			int entrada = input.nextInt();
			counter++;
			
		}
		
	}

}

Ou seja, guardar todas as variáveis que o usuário digitou em entrada para ser exibido depois. Eu até consigo fazer, o porém, é que a variável vai ser perdida a cada nova entrada de algum número. Nesse caso, o que faço ?

Abraços!

14 Respostas

A

tenta

public static void main(String args[])  
     {  
           
         Scanner input = new Scanner(System.in);  
           
         int counter = 0;  
           
         while(counter <= 10)  
         {  
             System.out.println("Digite o número para ser somado!");  
             int[] entrada = input.nextInt();  
             counter++;  
               
         }

ai vc faz um for imprimindo o array “entrada”.

hackum

Não consigui compreender, Alex!
Poderia explicar o seu código ?
No caso, eu quero pegar todas as variáveis que o usuário digitou e exibi-las.

A
public static void main(String args[])    
     {    
             
         Scanner input = new Scanner(System.in);    
             
         int counter = 0;    
         int[] entrada;    
         while(counter <= 10)    
         {    
             System.out.println("Digite o número para ser somado!");    
             entrada = input.nextInt();    
             counter++;    
                 
         }
         for(int valor : entrada){
         system.out.println(valor)
         }
hackum

Está dando erro no input.nextInt.

G

Fala hackum.

Se a quantidade de entrada for 10, acredito que a condição de parada deve ser:

while(counter < 10)

A captura provavelmente funcionará da seguinte forma:

int[counter] entrada = input.nextInt();
hackum

Ainda não obtive êxito.

G

Cara, posta a mensagem de erro.
Provavelmente o problema é o fato de você não ter instanciado o array.

int[] entrada = new int[10];

Abs.

paulo1911

olá hackum,

Os arrays primitivos quando criados devem ter seu tamanho definido, por isso nao funcionaria para a necessidade de n valores de entrada pois vc nao sabe quantos parametros vai ser inseridos no array.

No entanto faça isso:

import java.util.Scanner;  
    public class test {  
          
       public static void main(String args[])  
       {  
             
           Scanner input = new Scanner(System.in);  
             
           int counter = 0; 
           int entrada=0;
           List listValores=new Arraylist(); 
             
           while(counter <= 10) {  
               System.out.println("Digite o número para ser somado!");  
               entrada = input.nextInt(); 
               listValores.add(Integer.valueOf(entrada)); 
               counter++;  
                 
           }  
           // para ver os valores adicionados faça
          for(Integer i:listValores){
               System.out.println("Valor: "+i);
           }
             
       }  
     
   }

Espero ter ajudado.

A
public class Counter
{
	public Counter()
	{
	}

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

         int counter = 0;      
         List entrada = new ArrayList();      
         while(counter <= 10)      
         {      
             System.out.println("Digite o número para ser somado!");      
				 int num = input.nextInt();
				 entrada.add(num);
             counter++;      
                   
         }
			if (entrada != null) 
			{
				for (int i = 0; i < entrada.size(); i++) 
				{
					System.out.println(i);
				}
					
			}
	}
}

verdade paulo1911

paulo1911

Olá Alex Scharf, Legal vc querer ajudar mas você deve-se lembrar que Collection são de Objects e nao de primitivos :shock:

Para você adicionar o valor vc tem que usar um wrapper e adicional a Collection :smiley:

Fallow

hackum

Está dando erro no seu código Paulo, veja:

List listValores = new Arraylist();
paulo1911

Ola hackum,
vc precisa adicionar os imports:

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

//ajuste o for tb
                 for (int i = 0; i < entrada.size(); i++)   
                 {  
                     System.out.println(entrada.get(i));  
                 }

Fallow

ViniGodoy
O código certo:
import java.util.List;
import java.util.ArrayList;
import java.util.Scanner;

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

      int counter = 0;      
      List<Integer> entrada = new ArrayList<Integer>();
      while(counter <= 10) {      
         System.out.println("Digite o número para ser somado!");      
         int num = Integer.parseInt(input.nextLine());
         entrada.add(num);
      }
      for (Integer num : entrada) {
         System.out.println(num);
      }
   }
}
E com vetores:
public static void main(String args[]) {  
   Scanner input = new Scanner(System.in);  
   int entrada[] = new int[10];
           
   for (int i = 0; i < entrada.length; i++)
      System.out.println("Digite o número para ser somado!");  
      entrada[i] = Integer.parseInt(entrada.nextLine());
   }  

   for (int num : entrada) {
      System.out.println(entrada);
   }
}
williamdasflores
Faz um array de 10 posições
int array[] = new int[10];
e guarda os valores dentro desse array usando for ou while
Scanner sc = new Scanner(System.in);
int cont = 0;

for(cont = 0; cont < array.length; cont++)
{
   array[cont] = sc.nextInt();
}
int cont = 0;
Scanner sc = new Scanner(System.in);

while(cont < 10)
{ 
   array[cont] = sc.nextInt();
   cont++;
}
Criado 11 de maio de 2011
Ultima resposta 11 de mai. de 2011
Respostas 14
Participantes 6