entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

2votos

¿Cual es el problema con los arrays y el switch en java?

Ya me sucedió una vez que intentaba hacer un algoritmo, y usé un array, y los valores del array en un switch y no funcionó
Ahora he vuelto a hacer lo mismo y nada
En concreto lo que he hecho ha sido declarar los siguientes datos:

int ng, me;
int[] giros=new int[ng];

y en un método hice:

public static void método (int mapaelegido){
    me=mapaelegido;
    switch(me){
        case 0:
            ng=5;
    }
}

por tanto, el método requiere un entero, dependiendo del entero se le asigna un valor u otro a cada giro, por ejemplo, si es el mapa1, tiene cinco giros, giros[1]=100; por ejemplo
Luego, en otro método hice:

switch (ng){
    case 5:
        if ((r-giros[1])<0){
            APARECE UN TEXTO EN PANTALLA
    }
}

En resumen, es más complicado que eso, pero hay un array, dependiendo del mapa se le da unos valores u otros al array.
De hecho he probado a hacer:

switch (me){
    case 0:
        giros={100, 240, 310, 500, 730};
}

y nada, no funciona, me da error todo el rato

En donde pone en rojo porque ha crasheado pone que el error está justo donde empiezo a usar los valores del array, osea, justo donde pone giros[1]
A lo mejor es que no está permitido escribir esto:

if ((a-b)=c)

osea, a lo mejor no se pueden escribir más parentesis dentro de los if, pero creo recordar que sí se podía.

Alguna solucion? no quiero volver a usar cuarenta variables :(

1voto

carlossevi comentado

¿Y el mensaje de error qué dice?

1 Respuesta

3votos

Javi2EE Puntos6630

Sin ver el error es difícil ayudarte. Aún así si hay una cosa que esta mal:

if ((a-b)=c)

El operador de comparación es '==' por lo tanto esa sentencia se escribe así:

if ((a-b) == c)

Un saludo

0voto

Demrottens comentado

Ya encontré mi error, cuando me refería a los valores del array empezaba por arrr[1] en vez de cero, y terminaba en uno de mas, ese es mi problema, siempre se me olvida

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta