Метод, реализующий линейный поиск

package hw4;

import java.util.Scanner;
import java.util.Arrays;

public class Mth4 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
		Scanner sc = new Scanner(System.in);
		int[] array = new int[15];
		for (int i = 0; i < array.length; i++) {
			array[i] = (int) (1 + Math.random() * 15);
		}
		System.out.println("Введите число, которое хотите найти: ");
		int number = sc.nextInt();
		int indexOfNumber = findElem(array, number);
		System.out.println(indexOfNumber);
		System.out.println(Arrays.toString(array));
	}

	static int findElem(int[] ar, int n) {
		int numInd = 0;
		for (int i = 0; i < ar.length; i++) {
			if (ar[i] == n) {
				numInd = i;
				break;
			} else
				numInd = -1;
		}
		return numInd;
	}
}

Решение верно. Но мне кажется, что можно его оптимизировать, если сразу присвоить значение -1 переменной numInd:

int numInd=-1;

Таким образом, можно избавиться от лишнего присвоения -1 для каждой итерации в цикле. И просто, если элемент массива равен параметру, тогда присвоить для numInd, если нет, ничего не делаем:

if (ar[i] == n) {
  numInd = i;
  break;
}
2 симпатии

Решение хоть и верно но действительно может быть оптимизировано как вам и указали.

2 симпатии