Сообщение Null, когда пузырек воздуха печатает программу с методом JAVA

Предполагается, что моя программа (с пузырьком воздуха) должно быть, спрашивает у пользователя, хочет ли другой реестр и имя ввести информацию в компьютер. Их не должно быть более 5, однако, если я ввожу менее 5 данных в компьютер во время печатения, у меня появляется сообщение NULL в месте, где не были введены в компьютер данные. Как я могу упорядочивать эту проблему?

Здесь мой код:

import java.util.*;
public class bubble{
   public static void main(String[]args){
      Scanner entrada;
      entrada=new Scanner(System.in);
      Scanner sc=new Scanner(System.in);
      Scanner entrada2;
      entrada2=new Scanner(System.in);


      String[] nombre=new String[6];
      String auxnombre;
      int x=0;
      int y=0;
      int[] matricula= new int[6];
      int b=0;
      int a=0;
      int another=0;
      int opcion=0;
      int auxmatricula;




      do{
         a++;
         System.out.println("No. de Registro " +a);
         System.out.println("Ingresa tu numero contable");
         matricula[a]=entrada.nextInt();
         System.out.println("Ingresa tu nombre:");
         nombre[a]=sc.nextLine().toUpperCase();
         System.out.println("Deseas otro proceso? 1.si 2.no");
         another=entrada.nextInt();

         if (a>=5)
         {
            another=2;
         }
      }while(another==1);


      for(int i=1; i<5; i++)
      {
         for(y=1; y<5; y++)
         {
            if(matricula[y]>matricula[y+1])
            {
               auxmatricula=matricula[y];
               matricula[y]=matricula[y+1];
               matricula[y+1]=auxmatricula;
               auxnombre=nombre[y];
               nombre[y]=nombre[y+1];
               nombre[y+1]=auxnombre;
            }
         }
      }
      for(int i=1; i<=5; i++)
      {
         System.out.println("Numero Contable: "+matricula[i]+ "\n Nombre: "+nombre[i]);

      }

   }
}
1
задан 19.01.2017, 16:53
0 ответов

Попытайся со следующим кодом:

public static void main(String[] args) {
        Scanner entrada;
        entrada = new Scanner(System.in);
        Scanner sc = new Scanner(System.in);
        List nombre = new ArrayList();
        List matricula = new ArrayList();
        int a = 0;
        int another = 0;


        do {
            a++;
            System.out.println("No. de Registro " + a);
            System.out.println("Ingresa tu numero contable");
            matricula.add(entrada.nextInt());
            System.out.println("Ingresa tu nombre:");
            nombre.add(sc.nextLine().toUpperCase());
            System.out.println("Deseas otro proceso? 1.si 2.no");
            another = entrada.nextInt();

            if (a >= 5) {
                another = 2;
            }
        } while (another == 1);


        for (int i = 0; i < matricula.size(); i++) {
            System.out.println("Numero Contable: " + matricula.get(i) + "\nNombre: " + nombre.get(i));
        }
    }

Упростите немного твой код, использовав списки и без определенного так одинокого размера будут храниться элементы, которые вводят информацию в компьютер из-за клавиатуры.

3
ответ дан 03.12.2019, 17:37