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 <= 8;i++){
num[i] = Integer.parseInt(JOptionPane.showInputDialog("Digite um numero"));
}
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]