Я не могу удалить элементы из моего массива, когда я запрашиваю ввод данных пользователем - PullRequest
0 голосов
/ 06 декабря 2018

Когда я прошу пользователя ввести число для удаления из массива, он просто выдает 0, а затем просит повторить попытку. Я хочу, чтобы число было полностью удалено до тех пор, пока массив не будет пуст, вот код, который у меня есть:

import java.util.Scanner;
import java.util.Random;
public class DeleteElements
{
    public static void main(String[]args)
    {
        Scanner keyboard = new Scanner(System.in);
        int arr[] = new int[20];
        int num, found = 0,
        arrSize = 10;
        String choice;

        Random randomGenerator = new Random();
        for (int i = 0; i<10; i++)
        {
            arr[i] = randomGenerator.nextInt(100);
        }  

        for(int i = 0; i<10; i++)
        {
            System.out.print("" + arr[i] + " "); 
        }

        do 
        {
            System.out.print("Number to Delete: ");
            num = Integer.parseInt(keyboard.nextLine());

            if(arrSize <=0)
            {
                System.out.println("The array is now empty");
                break;
            }
            else
            {
                for (int i = 0; i<10; i++)
                {
                    if(arr[i] == num)  
                    {
                        found = 1;  
                    }

                    if (found == 1)
                        arr[i] = arr[i + 1];
                }
                if (found == 0)
                    System.out.println("Number not found,");

                else
                {
                    arrSize--;
                    int i = 0;
                    for ( i = 0; i <arrSize; i++);
                    {
                        System.out.print("" + arr[i] + " ");
                    }
                   found = 0;
               }
               System.out.println(" Try again (y/n) ? ");
               choice = keyboard.nextLine();
           }
       }while (choice.charAt(0) == 'y' || choice.charAt(0) == 'Y');
    }
}

Я хочу, чтобы это выглядело примерно так: Массив: 3, 63, 45 Удалить NUmber: "Пользовательский ввод 45" Массив: 3, 63

1 Ответ

0 голосов
/ 06 декабря 2018

Проблема здесь:

for ( i = 0; i <arrSize; i++);

У вас точка с запятой после цикла for.Удалите это, и ваш код работает как положено.

...