Erro em um código simples

Boa noite pessoal favor analisarem este código e me informar qual erro esta acontecendo pois nao esta executando o primeiro laço de repetição FOR.Agradeço a todos e aguardo respostas.

package ericson;

import javax.swing.JOptionPane;

public class desafio {
private static int[] num;
private static int i;
private static int z;
private static int x;
private static int memo;

public static void main (String[] args) {

int x,z,y;
int numarrays[] = new int [8];

for(int i = 1;i <= 8;i++);
num[i] = Integer.parseInt(JOptionPane.showInputDialog(“Digite um numero”));

}
{

for(int z = 1;z <= 8;z++);

int memo;

memo = num[z];

for(int x = 2;z + 1 <= 8;x++);{

if (memo < num[x]);
memo = num[x];
num[x] = num[z];
num[z] = memo;

}   

memo = num[z];

}       
{       

for(int i = 1;i <= 8;i++);
System.out.println(num[i]);
}
}
}

O seu array vai de 0 até 7, ou seja possui 8 posições, você está andando com o índice de 1 até 8, está acessando um índice inválido.

erickon2012

Primeiro, favor sempre colocar seu código dentro dos colchetes Code.

[code]for(int i = 1;i <= 8;i++);
num[i] = Integer.parseInt(JOptionPane.showInputDialog("Digite um numero"));

} [/code]

E a Sintaxe utilizada no For esta errada amigo. No Existe este ponte e virgula depois da condição, e sim uma "{".

Então fica assim:

for(int i = 1;i &lt;= 8;i++){ num[i] = Integer.parseInt(JOptionPane.showInputDialog(&quot;Digite um numero&quot;)); }

Todos os seus for’s estão incorretos.
O certo é como nosso amigo MarcioMaia descreveu.
Qualquer outra dúvida é só postar.
Vlw

for(int variável,condição de continuação,incremento ou decremento ){ \\código... }

Está acontecendo um problema com o array int numarrays[] = new int [8];
Você especificou a condição de continuação <=8 quando você declara [8] no array,esse mesmo vai de 0 a 7,o correto seria você colocar <8 (7) ou <=7.
E não se esqueça de abrir e fechar{} nos fors.
Espero ter ajudado!
Abraço!

Alem do que ja foi dito, você instanciou o array errado.

int numarrays[] = new int[8];

Esse Array nunca é usado.

Você também encerrou logo após o primeiro for, por isso você não imprimiu nada.

[code] public static void main(String[] args) {
int x, z, y;

	for (int i = 0; i <= 7; i++)
		num[i] = Integer.parseInt(JOptionPane
				.showInputDialog("Digite um numero"));
}[/code]

Todo o resto está sendo ignorado.

E para finalizar você não precisa declarar a variavel de loop como atributo (a não ser que seja necessario). Você pode declara-las assim:

for(int i = 0; i < 10; i++) { //seu código }

Ola amigos,realizei todas as correções no código e o mesmo ainda não consegue executar o primeiro for o,o que acontece ?Pergunto a vocês onde estão os erros agradeço.

Segue novamente o código corrigido :

import javax.swing.JOptionPane;

public class desafio {
private static int[] num;
private static int i;
private static int z;
private static int x;
private static int memo;

   public static void main (String[] args) {
	     
	   int y = 0; 
	   int numarrays[] = {8}; 
	   i = 0;
	   
	   for(; i <= 7;i++){
	numarrays[i] = Integer.parseInt(JOptionPane.showInputDialog(null, "Digite um número"));
	                       
	    }
	     
	for(int z = 0;z <= 7;z++){ 

	int memo;
	    
	memo = numarrays[z];

	for(int x = 0; z + y <= 7;x++){

	 if (memo < num[x]);
	memo = num[x];
	num[x] = num[z];
	num[z] = memo;
    y = y + 1;
	    }   

	memo = num[z];
	          
	    }       
	           
	 for(int w = 0;w <= 7;i++){  
	 System.out.println(num[w]);  
	    }
	}

}

Cara,onde a variável num está pegando os valores para as posições do array?

Olha se seria assim.

 import javax.swing.JOptionPane; 

public class desafio { 
private static int[] num; 
private static int i; 
private static int z; 
private static int x; 
private static int memo; 


public static void main (String[] args) { 

int y = 0; 
int numarrays[] = new int[8]; 
 num =new int[8];
i = 0; 

for(; i < 8;i++){ 
numarrays[i] = Integer.parseInt(JOptionPane.showInputDialog(null, "Digite um número")); 
num[i] = numarrays[i];

} 


for(int z = 0;z <= 7;z++){ 

int memo; 

memo = numarrays[z]; 

for(int x = 0; z + y <= 7;x++){ 

if (memo < num[x]); 
memo = num[x]; 
num[x] = num[z]; 
num[z] = memo; 
y = y + 1; 
} 

memo = num[z]; 

} 




 
for(int w = 0;w < 8;w++){ // se nao incrementar w vai ficar com loop infinito aqui
    
            
System.out.println(num[w]); 
} 

} 
}

Obrigado a todos muito bom o fórum;

se encontrou a solução para o seu problema …por favor coloque o post como [RESOLVIDO]