Как установить флаги в Java - PullRequest
0 голосов
/ 06 ноября 2018

Мне нужно написать программу, которая запрашивает у пользователя размер массива, а затем пользователь вводит эти значения. После этого мне нужно попросить пользователя удалить одно из этих значений, и программа заменит его на ноль. Поэтому мне нужно написать оператор if внутри цикла for, чтобы проверить, найдено ли введенное пользователем число в массиве или нет заменить его на ноль. Однако я должен использовать логическое значение и флаг, и я не уверен, как это сделать. пока я получил это, но не работает.

System.out.println("Enter the value to search and remove: ");
        // Use your Scanner to get a value for search
         int valueToRemove = scan.nextInt();

    // To search, we can iterate all values, record the index of target (t),
    // and then shift to the left values from t to the end.
    boolean isFound = false;
    for (int i = 0; i < arraySize; i++)
    {
         if (i == valueToRemove){

         }
        //     Set a flag isFound
        // 
        if (isFound = true) {
        //     if i + 1 is available
        //         move element i + 1 to index i
            i = (i+1);
        }
        //     if i + 1 is not available
         else
        //         set element i as zero
         i=0;
    }

    if (isFound)
    {
        System.out.println("Search element found");
    }
    else
    {
        System.out.println("Search element NOT found");   
    }


    // ============================================================
    // Display the final array

    System.out.println("\nThe final array");

    for (int i = 0; i < arraySize; i++)
    {
        // Print ith element, do NOT include line break
        System.out.print(integerArray[i]+ ", " );
    }

    // Print a line break
    System.out.println();
}

}

1 Ответ

0 голосов
/ 06 ноября 2018

Внутри цикла используйте только этот код:

isFound = (a[i] == valueToRemove);
if (isFound) {
    a[i] = 0;
    break;
}

isFound - это флаг, и он получает true, если элемент массива a[i] равен valueToRemove.
Если этот флаг равен true, он изменяет значение элемента на 0 enter code here и выходит из цикла.
Я использовал a для массива, измените его на имя вашей переменной.
Я думаю, arraySize - это переменная, содержащая размер массива.

...