Digitar um vetor de numeros inteiros em tempo de execuçao

6 respostas
K

como faço para digitar um vetor de numeros inteiros em tempo de execuçao?

6 Respostas

D

É possível preencher um vetor em tempo de execução somente se vc especificar o tamanho dele em tempo de compilação…

Portanto isso não é possível:

public class teste {
	public static void main(String[] args) {
		int x[];
		x[0]=1;
	}
}

… Mas isto sim é possível:

public class teste {
	public static void main(String[] args) {
		int x[] = new int[10];
		x[0]=1;
		x[1]=2;
		...
		x[9]=10;
	}
}
zardi

Na verdade não… podemos alocar um arranjo dinamicamente durante a execução. teríammos algo mais ou menos assim…

import javax.swing.JOptionPane;

/**
 * Uma mera classe de exemplo de alocação dinâmica de
 * arranjos.
 * 
 * @author zardi
 */
public class Vetor {

	/**
	 * Executa um exemplo de alocação dinâmica de arranjos.
	 * 
	 * @param args
	 * 	Os parâmetros passados por linha de comando
	 * (Não utilizado).
	 */
	public static void main(String[] args) {
		int[] vetor;
		int tamanho;
		
		/*
		 *  O código está feio, mas é apenas um exemplo de 
		 *  entrada. Deveríamos checar pelo menos por um 
		 *  NumberFormatException. E se a conversão for 
		 *  bem sucedida, deveríamos verificar se o tamanho
		 *  é maior ou igual a zero!
		 */
		tamanho = Integer.parseInt(JOptionPane.showInputDialog("digite o tamanho do vetor"));
		
		// Aloca o vetor dinamicamente
		vetor = new int[tamanho];
		
		// Preenche o vetor com a sequência 1, 2 ... tamanho
		for(int i = 0; i < vetor.length; i++) {
			vetor[i] = i + 1;
		}
		
		// Escreve cada elemento do vetor em uma linha
		for(int atual : vetor) {
			System.out.println(atual);
		}
		
		// Necessário pois utilizamos JOptionPane
		System.exit(0);
	}
	
}
D

Pois é, o que eu disse é q não se pode preencher um vetor sem antes alocar memória pra ele.

kaabah

A pergunta está meio confusa… não consegui entender… hehehehehe…

:shock:

K

obrigado amigos consegui resolver o problema.

I

q?

Criado 15 de agosto de 2006
Ultima resposta 15 de ago. de 2006
Respostas 6
Participantes 5