1
I’m making a simple program that inserts at the first possible position of a vector, a String.
This is the code I have:
import java.util.Formatter;
import java.util.Scanner;
/**
 *
 * @author AmândioMagalhães(115
 */
public class PL7_ex6 {
    private static Scanner input = new Scanner(System.in);
    private static Formatter output = new Formatter(System.out);
    public static void main(String[] args) {
        String[] visitantes = new String[100];
        int nElm = 0;
        menu(visitantes, nElm);
    }
    private static void menu(String[] vec, int nElm) {
        int op;
        output.format("bem-vindo!");
        output.format("\n\nAqui pode:");
        do {
            System.out.println("\n\n1 - Inserir um visitante"
                    + "\n2 - Listar todos os visitantes"
                    + "\n3 - Atualizar um nome dado"
                    + "\n4 - Eliminar um visitante dado"
                    + "\n5- Lisstar os nomes começados por uma dada letra"
                    + "\n6 - Listar nomes repetidos"
                    + "\n0 - para terminar o programa");
            op = input.nextInt();
            if (op < 0 || op > 6) {
                output.format("%sTem de introduzir uma opção válida!");
            }
            if (op == 0) {
                //termina
            } else {
                switch (op) {
                    case 0:
                    case 1:
                        inserirVisitante(vec, nElm);
                        System.out.println(vec[0]);
                        break;
                    case 2:
                        listarVisitantes(vec, nElm);
                        break;
                    case 3:
                        break;
                    default:
                        throw new AssertionError();
                }
            }
        } while (op > 0 || op > 6);
    }
    private static void inserirVisitante(String[] vec, int nElm) {
        int pos = 0;
        int i = 0;
        if (nElm == vec.length) {
            output.format("Não há espaço disponível :(");
        } else {
            do {
                if (i == nElm - 1) {
                    pos = i;
                }
                i++;
            } while (i >= nElm - 1);
            System.out.println("Introduza o nome do visitante");
            input.nextLine();
            vec[pos] = input.nextLine();
            vec[pos].trim();
            nElm = nElm + 1;
            //para testar
            System.out.println("\n" + nElm + "\n");
        }
    }
    //nElem não passa de inserirVisitantes para este método
    private static void listarVisitantes(String[] vec, int nElm) {
        if (nElm == 0) {
            //para testar
            System.out.println("\n" + nElm + "\n");
            output.format("Não há visitantes.");
        } else {
            for (int i = 0; i < nElm; i++) {
                output.format("%n%d", vec[i]);
            }
        }
    }
}
The problem here is that the variable nElm reset to 0 without me defining it as 0
Tu gives the value of the variable nElm in line 2 after public Static void main
– Adelino Jose Ngomacha