Variavel de instancia atribui a variavel local

4 respostas
hackum

Veja bem:

import java.util.Scanner;
public class ex1 {
	
	private int q;
	private int l;
	
	public void valorQuilometros()
	{
		
		Scanner input = new Scanner(System.in);
		int usr1 = 0;
		
		while(usr1 != -1)
		{
			System.out.print("Digite a quantidade de quilometros: ");
			usr1 = input.nextInt();
			usr1 = usr1 + q;
			
		}
		
		
		
	}
	
}

Desejo adcionar o s valores que o usuario digitou para a variavel q, e mostrar os valores que o usuario digitou. Nesse caso o que faço ?

4 Respostas

InSeOfKn

como assim desejas manter todos os valores digitados pelo usuário e não só o valor total, se for de uma lida sobre Collection nesse caso acho que a class ArrayList resolve!

vou resolver mas não deixe de estudar

public class ex1 {
	
	private List<Integer> q = new ArrayList<Integer>();
	private int l;
	
	public void valorQuilometros()
	{
		
		Scanner input = new Scanner(System.in);
		int usr1 = 0;
		
		while(usr1 != -1)
		{
			System.out.print("Digite a quantidade de quilometros: ");
			usr1 = input.nextInt();
			q.add(usr1);			
		}
	
	}
        public void imprime(){
            for(Integer quilometro : q){
                 System.out.println("Foi digitado "+quilometro);
            }
        }
	
}

Se não for isso esclareça mais sua pergunta.

Até!

otaviojava

Acredito que é bem semelhante que o colega acima falou.
só que na linha 16 seria adicionado um imprimir na tela

System.out.println(usr1+" quilometros");

Acredito que seja isso.

hackum
import java.util.Scanner;  
public class ex1 {  
      
    private int q;  
    private int l;  
      
    public void valorQuilometros()  
    {  
          
        Scanner input = new Scanner(System.in);  
        int usr1 = 0;  
          
        while(usr1 != -1)  
        {  
            System.out.print("Digite a quantidade de quilometros: ");  
            usr1 = input.nextInt();  
            
              
        }  
        
    }  
    
    public void qImprime()
    {
    	
    	System.out.printf("Valores digitados: %d",q);
    	
    }
      
}

Fala que os valores são 0. Quero imprimir os valores que o usuario digitou no while, sem usar esses comandos avançados, pois, sou iniciante no java.

Obrigado.

Rafael_Mesquita_Mour

Para o que você quer amigo, basta colocar a instrução de impressão dentro do seu laço WHILE:

while(usr1 != -1){ System.out.print("Digite a quantidade de quilometros: "); usr1 = input.nextInt(); q = usr1; System.out.printf("%s%d\n","Valores digitados: ",q); }

Agora se você quiser que ele imprima os valores, um ao lado do outro sem substituir, terá que utilizar um Array de Inteiros.

Criado 25 de janeiro de 2011
Ultima resposta 25 de jan. de 2011
Respostas 4
Participantes 4