Arreglo de java

Iniciado por ale95121, 24 Marzo 2014, 03:20 AM

0 Miembros y 2 Visitantes están viendo este tema.

ale95121

hola Darhius mira asi es como me queda mi codigo:

import javax.swing.JOptionPane;

public class InicArreglo{

public static void main (String args[]){

int arreglo[]={1,2,3,4,5,6,7,8,9,10};

for (int contador=0;contador<arreglo.length;contador++)

int opc=Integer.parseInt(JOptionPane.showInputDialog("Dame un numero"));

if(arreglo[contador]==opc){

System.out.printf("El numero se encuentra en el arreglo");

}

else{

System.out.printf("EL numero no se encuentra en el arreglo");

}

}


1mpuls0

Hola.

Vas bien...

Solo que no puedes pedir el dato cada vez que incremente el contador.

Código (java) [Seleccionar]
for (int contador=0;contador<arreglo.length;contador++)
int opc=Integer.parseInt(JOptionPane.showInputDialog("Dame un numero"));


Lo que hace esa instrucciones es  mas o menos así.

1. inicia el contador en 0
2. compara si contador es menor que el tamaño del arreglo.
3. Si es menor entra al bloque.
4. Pide un numero y hace todo lo demás
5. incrementa el contador

6. contador es igual a 1.
2. compara si contador es menor que tamaño de arreglo
...
4. VUELVE  a pedir otra vez un numero.
....

* Lo que necesitamos es que pida solamente una vez el número, así que necesitas sacar tu petición del número del for.

Cuando por fin encuentre el número hay que terminar el ciclo para que ya que no siga recorriendolo, hay varias formas.
utilizando la palabra reservada break (muchos no la recomiendan pero es lo más usado xD), igualando el contador al tamaño del arreglo, y utilizando banderas booleanas, por ahora solo te recomiendo el break.

Por cierto, aquí donde escrbibes el mensaje hay un combobox (select) que dice "GeSHi" busca una opción que dice "Java" y ahí colca el código (solo el código de java)
abc

ale95121

#12
Código (java) [Seleccionar]
[/import javax.swing.JOptionPane;
public class InicArreglo{
public static void main (String args[]){
int arreglo[]={1,2,3,4,5,6,7,8,9,10};
for (int contador=0;contador<=10;contador++);{
int opc=Integer.parseInt(JOptionPane.showInputDialog("Dame un numero"));
break;
if(arreglo[contador]==opc){
System.out.printf("El numero: "+opc+" se encuentra en el arreglo");
}else{
System.out.printf("EL numero: "+opc+" no se encuentra en el arreglo");
}
}
}
}]

asi es como me dijiste que saque el numero para contarlo de 0 y el break para detenerlo??

1mpuls0

#13
Hola.
Como te comenté antes, solo el código colocalo en geshi.

Creo que no estás prestando mucha atención a lo que he escrito, re-leelo.

esta parte está incorrecta, contador<=10, vas a tener un nullpointerexception.

el break lo tienes que hacer cuando hayas encontrado el numero.
el break sirve para romper el ciclo.

edito:
correlo tu mismo para que veas lo que hace y analices entre lo que hace y lo que escribes en tu código.

Saludos!
abc

Mitsu

#14
  • Break (Romper): Sirve para romper una condición. Se usa para romper las condiciones de los bucles y terminar el mismo.

  • Arrays: Los arreglos son una estructura de datos cuya finalidad es almacenar uno o muchos valores de un mismo tipo (salvo se declare como un array de Object). Los arrays son estáticos, es decir, tienes que darle un tamaño y éste no variará. En Java y muchos otros lenguajes, los arreglos empiezan desde la posición cero. Ej:

    Código (=java) [Seleccionar]

    String[] array = new int[5];
    array[0] = "valor 1";
    array[1] = "valor 2";
    array[2] = "valor 3";
    array[3] = "valor 4";
    array[4] = "valor 5";


    La manera de trabajar de un bucle es por medio de una condición. En el caso del loop for, la sintaxis es así:

    Código (=java) [Seleccionar]

    for (variable de control; condicion; incremento/decremento) {
        // acciones aqui
    }


    Supongamos que variable de control es un entero llamado i que vale 0. Pensamos recorrer un array, entonces, la condición será:

    Citarmientras que i sea menor al tamaño del array

    Y funciona así:

    Código (=java) [Seleccionar]

    for(int i=0; i<arreglo.length; i++) {
    // i(0) es menor al tamaño del array ? (5) Si. Entonces i incrementa en 1 y vuelve a la condicion.
            // i(1) es menor a 5? Si. Entonces incrementa en 1 y vuelve a la condicion.
            // .... asi con 2,3,4 e incrementa en 1
            // i(5) es menor a 5? No. Sale del bucle y
    }
    // continua aqui



    Existen dos maneras de acceder a un array: La manera tradicional con un loop for, y con un foreach:

    For: Ésta forma es ideal cuando vamos a trabajar con los subíndices del array:
    Código (=java) [Seleccionar]

    for(int i=0; i<arreglo.length; i++) {
    // operaciones aqui
    }


    Foreach: Ésta nueva forma es ideal cuando no necesitamos trabajar con los subíndices, si no con los elementos del array:
    Código (=java) [Seleccionar]

    int suma = 0;
    for(int elementoActual : array o coleccion de enteros) {
    suma += elementoActual;
    }


    El parámetro de la derecha, es el array o lista que se va a recorrer. Hay que tener en cuenta el tipo de datos que almacena este array o colección, ya que el parámetro de la izquierda representa el elemento actual de la lista en la iteración, por lo que debe ser del mismo tipo.

    Espero hayas entendido, porque he tratado de ser lo más explícito posible. Salu2.

ale95121

#15
Disculpa en verdad le pongo demasiada atencion pero como podras ver mi logica es algo lenta disculpa creo que ya te entendi hasta el for mira (por favor tenme paciencia);
Código (java) [Seleccionar]
[import javax.swing.JOptionPane;
public class InicArreglo{
public static void main (String args[]){
int arreglo[]={1,2,3,4,5,6,7,8,9,10};
int opc=Integer.parseInt(JOptionPane.showInputDialog("Dame un numero"));
for(int indice=0; indice<=arreglo.length; indice++);
if(opc==arreglo[indice]){
System.out.println("El numero se encuentra en el arreglo");
break;
}else{
System.out.println("El numero no se encuentra en el arreglo");
}
}
}/code]

ale95121

mitsu gracias por la informacion me ah quedado un poco mas claro para que es el for pero en la lista que pones de el arreglo ya lo habia querido hacer asi antes pero marca error en los corchetes a que se debera?
Citar[String[] array = new int[5];
arreglo[0] = "valor 1";
arreglo[1] = "valor 2";
arreglo[2] = "valor 3";
arreglo[3] = "valor 4";
arreglo[4] = "valor 5";]

Mitsu

Me equivoqué con el nombre del array nada más. Verifica nuevamente el código que puse.

1mpuls0

Cita de: ale95121 en 24 Marzo 2014, 20:21 PM
Disculpa en verdad le pongo demasiada atencion pero como podras ver mi logica es algo lenta disculpa creo que ya te entendi hasta el for mira (por favor tenme paciencia);
Código (java) [Seleccionar]
[import javax.swing.JOptionPane;
public class InicArreglo{
public static void main (String args[]){
int arreglo[]={1,2,3,4,5,6,7,8,9,10};
int opc=Integer.parseInt(JOptionPane.showInputDialog("Dame un numero"));
for(int indice=0; indice<=arreglo.length; indice++);
if(opc==arreglo[indice]){
System.out.println("El numero se encuentra en el arreglo");
break;
}else{
System.out.println("El numero no se encuentra en el arreglo");
}
}
}/code]


Bravo! ves como si puedes, con un poco de ayuda.
Solo falta algo... suponiendo que se recorre todo el arreglo

Código (java) [Seleccionar]

<=arreglo.length


al entrar en esta parte
Código (java) [Seleccionar]

arreglo[indice]


verifica esa parte :) y ya estuvo
abc

ale95121

pero en el break me da un error y el if tambien mira y el if entonces le tengo que poner arreglo[indice].length??;
Código (java) [Seleccionar]
[InicArreglo.java:7: error: cannot find symbol
if(opc==arreglo[indice]){
                ^
  symbol:   variable indice
  location: class InicArreglo
InicArreglo.java:9: error: break outside switch or loop
break;
^
2 errors
/code]