Java - Ayuda con ejercicio Java de arrays

 
Vista:
sin imagen de perfil
Val: 51
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Ayuda con ejercicio Java de arrays

Publicado por manolo01 (32 intervenciones) el 13/11/2016 23:42:42
Hola, tengo el siguiente ejercicio:
Programa en java que pida la introducción de un número de teléfono y diga si éste empieza por
6, por 9, por 7 o por 8. Si el número introducido no empieza por alguna de las opciones anteriores,
que informe de que no se ha introducido un número de teléfono válido.

Este es mi código, pero al ejecutarlo falla porque sólo me muestra el contenido del else después de meter los números del teléfono. Gracias de antemano.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int x;
        int[] tel = new int[9];
 
        for(x=1;x<tel.length;x++){
            System.out.println("Introduce un número de teléfono: ");
            tel[x] = sc.nextInt();
        }
        for(x=1;x<tel.length;x++){
            if(tel[1] == 9 && tel[1] == 8 && tel[1] == 6 && tel[1] == 7){
               System.out.print("El número es: "+tel[1]);
            }else{
                System.out.println("Mal ");
                break;
            }
        }
    }
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Elivar Largo
Val: 54
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Ayuda con ejercicio Java de arrays

Publicado por Elivar Largo (2 intervenciones) el 14/11/2016 06:26:56
Hola manolo01, como primera recomendación deberías empezar por llenar el arreglo desde la posición cero, ya que así se maneja los arreglos.

Segundo el error que tienes es un error lógico y está en la condición if, ya que al utilizar el operador && toda la expresión debe ser verdadera para que ingrese y obviamente no es.

Ya que en la posición 1 debe estar el 8 o el 9 o el 6 o el 7, pero no los dos a la vez, y eso es lo que le estas diciendo en la condición.

Te recomiendo leer sobre los errores lógicos y operadores, puede seguir este enlace: http://www.ecodeup.com/tipos-errores-desarrollo-software/


O sobre los operadores y como funcionan: http://www.ecodeup.com/operadores-en-java-los-mas-utilizados/

Finalmente tu código quedaría de la siguiente manera:

Scanner sc = new Scanner(System.in);
int x;
int[] tel = new int[9];

for (x = 0; x < tel.length; x++) {
System.out.println("Introduce un número de teléfono: ");
tel[x] = sc.nextInt();
}
for (x = 0; x < tel.length; x++) {
if (tel[0] == 9 || tel[0] == 8 || tel[0] == 6 || tel[0] == 7) {
System.out.print("El número es: " + tel[0]);
} else {
System.out.println("Mal ");
break;
}
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar