在Java中,在方法之前崩溃。

huangapple go评论72阅读模式
英文:

Crash before a method in Java

问题

package com.app;

import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;

public class Main {
    // cmd_in
    static Scanner entradaConsola = new Scanner(System.in);

    public static void main(String[] args) throws FileNotFoundException {
        int cantMax = 10;
        String[] nombresVendedores = new String[cantMax];
        String[] passVendedores = new String[cantMax];
        String[] codPeliculas = new String[cantMax];
        String[] nombrePeliculas = new String[cantMax];
        String[] salaPeliculas = new String[cantMax];
        int[] dispAsientos = new int[cantMax];
        int[] precioEntrada = new int[cantMax];
        String opcion = "1";
        int cantVendedores = leerArchivos("vendedores.txt", opcion, nombresVendedores, passVendedores, codPeliculas, nombrePeliculas,
                salaPeliculas, dispAsientos, precioEntrada);
        opcion = "2";
        int cantPeliculas = leerArchivos("peliculas.txt", opcion, nombresVendedores, passVendedores, codPeliculas, nombrePeliculas,
                salaPeliculas, dispAsientos, precioEntrada);

        while (true) {
            System.out.println("=== WELCOME TO CINE HOYTS ===");
            System.out.println("Choose one option: ");
            System.out.println("A) Login");
            System.out.println("B) Exit");

            String eleccion = entradaConsola.nextLine();

            if (eleccion.equalsIgnoreCase("a")) {
                String user = entradaConsola.nextLine();
                String pass = entradaConsola.nextLine();
                if (verificarUsuario(nombresVendedores, passVendedores, cantVendedores, user, pass)) {
                    System.out.println("Sucesfull Login");
                    System.out.println(cantPeliculas);
                } else
                    System.out.println("User/Password incorrect.");
            } else if (eleccion.equalsIgnoreCase("b")) {
                System.out.println("Good Bye. EXITING!");
                break;
            } else
                System.out.println("Wrong options");
        }
    }

    // read file
    public static int leerArchivos(String nombreArchivo, String opcion, String[] nombresVendedores, String[] passVendedores,
                                   String[] codPeliculas, String[] nombrePeliculas, String[] salaPeliculas, int[] dispAsientos,
                                   int[] precioEntradas) throws FileNotFoundException {
        File archivo = new File(nombreArchivo);
        Scanner lector = new Scanner(archivo);
        int cant = 0;

        switch (opcion) {
            case "1" -> {
                while (lector.hasNextLine()) {
                    String linea = lector.nextLine();
                    String[] partes = linea.split(",");
                    nombresVendedores[cant] = partes[0];
                    passVendedores[cant] = partes[1];
                    cant++;
                }
            }
            case "2" -> {
                while (lector.hasNextLine()) {
                    String linea = lector.nextLine();
                    String[] partes = linea.split(",");
                    codPeliculas[cant] = partes[0];
                    nombrePeliculas[cant] = partes[1];
                    salaPeliculas[cant] = partes[2];
                    dispAsientos[cant] = Integer.parseInt(partes[3]);
                    precioEntradas[cant] = Integer.parseInt(partes[4]);
                    cant++;
                }
            }
        }
        return cant;
    }

    // Verify if user exists
    public static boolean verificarUsuario(String[] nombresVendedores, String[] passVendedores, int cantVendedores, String user, String pass) {
        for (int i = 0; i < cantVendedores; i++) {
            if (nombresVendedores[i].equalsIgnoreCase(user)) {
                if (passVendedores[i].equalsIgnoreCase(pass)) {
                    return true;
                }
            }
        }
        return false;
    }
}
英文:

I'm working in activity for College, I'm trying to do a menu with options clearly, but when i put option "A" to introduce user and pass to verify the user and login in the system, the program doesnt move, doesnt ask the user. Just before system.out.blablaba option A or B.
I just want to know if the keyboard input is correlativo to some element in the user and password arrays

package com.app;
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;
public class Main {
//cmd_in
static Scanner entradaConsola = new Scanner(System.in);
public static void main(String[] args) throws FileNotFoundException {
int cantMax = 10;
String[] nombresVendedores = new String[cantMax];
String[] passVendedores = new String[cantMax];
String[] codPeliculas = new String[cantMax];
String[] nombrePeliculas = new String[cantMax];
String[] salaPeliculas = new String[cantMax];
int[] dispAsientos = new int[cantMax];
int[] precioEntrada = new int[cantMax];
String opcion = &quot;1&quot;;
int cantVendedores = leerArchivos(&quot;vendedores.txt&quot;, opcion,nombresVendedores,passVendedores,codPeliculas,nombrePeliculas,
salaPeliculas,dispAsientos,precioEntrada);
opcion = &quot;2&quot;;
int cantPeliculas = leerArchivos(&quot;peliculas.txt&quot;, opcion,nombresVendedores,passVendedores,codPeliculas,nombrePeliculas,
salaPeliculas,dispAsientos,precioEntrada);
while (true){
System.out.println(&quot;=== WELCOME TO CINE HOYTS ===&quot;);
System.out.println(&quot;Choose one option: &quot;);
System.out.println(&quot;A) Login&quot;);
System.out.println(&quot;B) Exit&quot;);
String eleccion = entradaConsola.nextLine();
if (eleccion.equalsIgnoreCase(&quot;a&quot;)){
String user = entradaConsola.nextLine();
String pass = entradaConsola.nextLine();
if (verificarUsuario(nombresVendedores,passVendedores,cantVendedores,user,pass)){
System.out.println(&quot;Sucesfull Login&quot;);
System.out.println(cantPeliculas);
}else
System.out.println(&quot;User/Password incorrect.&quot;);
}else if (eleccion.equalsIgnoreCase(&quot;b&quot;)){
System.out.println(&quot;Good Bye. EXITING!&quot;);
break;
}else
System.out.println(&quot;Wrong options&quot;);
}
}
// read file
public static int leerArchivos(String nombreArchivo, String opcion, String[] nombresVendedores, String[] passVendedores,
String[] codPeliculas, String[] nombrePeliculas, String[] salaPeliculas, int[] dispAsientos,
int[] precioEntradas) throws FileNotFoundException {
File archivo = new File(nombreArchivo);
Scanner lector = new Scanner(archivo);
int cant = 0;
switch (opcion){
case &quot;1&quot; -&gt; {
while (lector.hasNextLine()){
String linea = lector.nextLine();
String[] partes = linea.split(&quot;,&quot;);
nombresVendedores[cant] = partes[0];
passVendedores[cant] = partes[1];
cant++;
}
}
case &quot;2&quot; -&gt; {
while (lector.hasNextLine()){
String linea = lector.nextLine();
String[] partes = linea.split(&quot;,&quot;);
codPeliculas[cant] = partes[0];
nombrePeliculas[cant] = partes[1];
salaPeliculas[cant] = partes[2];
dispAsientos[cant] = Integer.parseInt(partes[3]);
precioEntradas[cant] = Integer.parseInt(partes[4]);
cant++;
}
}
}
return cant;
}
// Verify if user exists
public static boolean verificarUsuario(String[] nombresVendedores, String[] passVendedores, int cantVendedores,String user,String pass){
for (int i = 0; i &lt; cantVendedores; i++){
if (nombresVendedores[i].equalsIgnoreCase(user)){
if (passVendedores[i].equalsIgnoreCase(pass)){
return true;
}
}
}
return false;
}

}

答案1

得分: 1

我认为你的程序已经在运行...

只需要在获取用户名和密码之前打印一段文本。然后就会更清晰...

System.out.println("输入用户名:");
String user = entradaConsola.nextLine();
System.out.println("输入密码:");
String pass = entradaConsola.nextLine();
英文:

I think your program is already working...

Just print a text before taking user and pass. Then it will be more clear...

System.out.println(&quot;Enter username:&quot;);
String user = entradaConsola.nextLine();
System.out.println(&quot;Enter password:&quot;);
String pass = entradaConsola.nextLine();

huangapple
  • 本文由 发表于 2020年10月11日 16:35:27
  • 转载请务必保留本文链接:https://go.coder-hub.com/64302061.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定