Foro sobre Java SE > Java Threads
do{
if((plazas[plaza]==0)&&(plazas[plaza+1]==0)&&(plazas[plaza+2]==0)){
return plaza;
}else{
plaza++;
}
}while(plaza<n_plazas-1);
Si en ese bucle haces plaza++ esta claro que en la siguiente iteracion cuando haga plazas[plaza+2] se va a salir del tamano del array. Tienes que usar otra variable para hacer ese incremento.
Un saludo
O hacer directamente
if((plazas[0]==0)&&(plazas[1]==0)&&(plazas[2]==0)){
aaa!muchas gracias, pero como pongo otra variable? pues quiero que compruebe todas las plazas, que no empieza a comparar siempre por el 0...
Buenas,
Siento decirlo pero he revisado un poco el código y no veo por donde cogerlo. Por desgracia no se puede sustituir esa variable sin afectar a la lógica ya que todo está muy acoplado.
Lo más sencillo es que en ese if, lo primero de todo compruebes si tiene dicho tamaño:
if((plaza + 2 < plazas.length) && (plazas[plaza]==0)&&(plazas[plaza+1]==0)&&(plazas[plaza+2]==0)){
Como sabras las condiciones del if funcionan en cortocircuito, por lo que si no se cumple la primera no se evaluan las siguiente. Por tanto, si ve que el tamaño del vehículo sobrepasa la capacidad del array/parking te dira que está lleno.
Un saludo
Muchisimas gracias!
podrias pasarme tu trabajo porfa
¿Desde que línea de esas te lanza la excepción?