Java - [Ayuda] Duda con uso de if al detectar datos

 
Vista:
Imágen de perfil de Kaizer
Val: 12
Ha disminuido 1 puesto en Java (en relación al último mes)
Gráfica de Java

[Ayuda] Duda con uso de if al detectar datos

Publicado por Kaizer (1 intervención) el 19/11/2019 00:58:31
Hola a todos; Soy nuevo en el Foro, queria saber si alguien puede echarme una mano o indicarme en lo siguiente, ya que me encuentro un poco bloqueado en cuanto al metodo de como hacer dicha funcion, veran, tengo la siguiente actividad, el primer punto ya esta hecho, pero estoy confundido con el 2do, ya que no estoy del todo seguro como hacer que me detecte con un if, cuando se ingreso un codigo, y si esta vacia la matriz.

1
2
3
4
5
6
7
8
9
1.- Ingresar clientes: Se debe ingresar el código del cliente, su nombre y su dirección. Una vez se ingresa un cliente, se debe preguntar si se ingresa otro. Si no quiere ingresar más clientes, se debe volver al menú principal.
 
2.- Ingresar consumo: Para los clientes ingresados, se debe agregar cuantos kilovatios consumió. Se debe tener en cuenta:
 
2.1 - Si no hay clientes, no se puede agregar ningún consumo.
 
2.2 - Para agregar un consumo se debe ingresar el código del cliente y el consumo. Se debe comprobar que el código del cliente existe.
 
2.3 - Los consumos deben ser mayores a cero.

Mi codigo esta estructurado de la siguiente manera, si alguien puede indicarme o decirme mas o menos como realizar esto lo agradeceria mucho, gracias de ante mano.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
public static void main(String[] args) {
        /*---------------------------------*/
        Scanner in = new Scanner(System.in);
        Scanner S = new Scanner(System.in);
        String yw = "\033[33m";
        String rd = "\u001B[31m";
        /*---------------------------------*/
        boolean exit = false;
        String nombre[], direccion[], res;
        int op, cliente, codigo[], consumo;
        /*---------------------------------*/
 
        while (!exit) {
            System.out.println(yw + "|--------------------------------------------------|");
            System.out.println(yw + "| 1. Ingresar cliente.                             |");
            System.out.println(yw + "| 2. Ingresar consumos.                            |");
            System.out.println(yw + "| 3. Ver consumo y factura por cliente.            |");
            System.out.println(yw + "| 4. Ver consumos y facturas de todos los clientes.|");
            System.out.println(yw + "| 5. Salir.                                        |");
            System.out.println(yw + "|--------------------------------------------------|");
 
            try {
                System.out.print("\nElige una opción: ");
 
                op = in.nextInt();
                switch (op) {
                    case 1:
                        System.out.print("Ingrese el numero de clientes: ");
                        cliente = in.nextInt();
                        nombre = new String[cliente];
                        direccion = new String[cliente];
                        codigo = new int[cliente];
 
                        for (int i = 0; i < cliente; i++) {
                            System.out.print("Ingrese el codigo del cliente " + (i + 1) + ": ");
                            codigo[i] = in.nextInt();
                            System.out.print("Ingrese el nombre del cliente: ");
                            nombre[i] = S.nextLine();
                            System.out.print("Ingrese la dirreccion del cliente: ");
                            direccion[i] = S.nextLine();
 
                            System.out.println("Desea ingresar otro cliente? ");
                            res = S.nextLine();
                            if (res.equals("si") || res.equals("SI") || (res.equals("Si"))) {
                                i = 1;
                                System.out.print("Ingrese el codigo del cliente " + (i + 1) + ": ");
                                codigo[i] = in.nextInt();
                                System.out.print("Ingrese el nombre del cliente: ");
                                nombre[i] = S.nextLine();
                                System.out.print("Ingrese la direccion del cliente: ");
                                direccion[i] = S.nextLine();
                                System.out.print("Desea ingresar otro cliente?" + "\n");
 
                                S.nextLine();
                            } else {
                                if (res.equals("no") || (res.equals("NO") || (res.equals("No")))) {
                                    System.out.println("Usted a sido redirigido al menu principal.");
                                }
                                break;
                            }
                        }
                    case 2:
 
 
                        break;
                    case 3:
                        break;
                    case 4:
                        break;
                    case 5:
                        System.exit(0);
                    default:
                        System.out.println(rd + "Error; Solo dispones de 2 Opciones.");
                }
            } catch (Exception e) {
            }
        }
    }
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 Lawliet
Val: 885
Plata
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

[Ayuda] Duda con uso de if al detectar datos

Publicado por Lawliet (302 intervenciones) el 19/11/2019 10:10:17
Hola!!!

A mi punto de vista lo mejor es que crees una clase cliente la cual contenga el código, nombre, dirección y consumos. De esa forma te será mucho más fácil y práctico manejar la información.

A continuación, te dejo un ejemplo sencillo de como lo haría yo tomando en cuenta que estamos trabajando con arreglos.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
public static void main(String[] args) {
	Scanner scanner = new Scanner(System.in);
	Cliente[] clientes = null;
 
	System.out.println("**********************************************************");
	System.out.println("*                                                        *");
	System.out.println("*                          MENÚ                          *");
	System.out.println("*                                                        *");
	System.out.println("* 1.- Ingresar cliente.                                  *");
	System.out.println("* 2.- Ingresar consumos.                                 *");
	System.out.println("* 3.- SALIR.                                             *");
	System.out.println("*                                                        *");
	System.out.println("**********************************************************");
	System.out.println();
	System.out.print("Seleccione una opción: ");
	int opcion = scanner.nextInt();
 
	while(true) {
		switch (opcion) {
		case 1:
			/*NOTA: Solamente si entramos a esta opción del menú es que pasamos a agregar los clientes, caso contrario nuestro arreglo queda como null*/
			System.out.println("Proceso para agregar clientes.");
			break;
		case 2:
			if(clientes == null) {
				System.out.print("No existen clientes para agregar consumos, ingrese otra opción: ");
				opcion = scanner.nextInt();
			} else {
				System.out.println("Agregar consumos al cliente.");
			}
			break;
		case 3:
			System.exit(0);
			break;
		default:
			while (opcion > 3) {
				System.out.print("Ingrese una de las opciones del menú: ");
				opcion = scanner.nextInt();
			}
			break;
		}
	}
}

Personalmente, sería mucho más viable que se trabajara con las listas ya que por el enunciado pareciera estamos hablando de un arreglo dinámico, recordemos que cuando trabajamos con arreglos es necesario especificar el tamaño de dicho arreglo, en cambio si trabajamos con una lista nos evita especificar el tamaño y así obtener una colección de forma dinámica.

Sin más que comentar, quedo al pendiente de cualquier duda y/o comentario.

Saludos!

P.D. Por si te preguntabas que contenía la clase Cliente, aquí esta el código.

1
2
3
4
5
6
7
8
9
public class Cliente {
 
	private int codigo;
	private String nombre;
	private String direccion;
	private int consumo;
 
	//Getter/Setter
}
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