Am writting a Linear Search implementation. I have written the code by using Java 7 and 8 as well.
Below is my code:
int[] arr = new int[] { 12, 34, 94, 8, 37, 10 };
System.out.println("Enter the element to search: ");
Scanner scan = new Scanner(System.in);
int element = scan.nextInt();
boolean found = false;
// Linear search implementation using Java 7 features
for (int i = 0; i < arr.length; i++) {
    if (element == arr[i]) {
        int n = element;
        System.out.println("Element : "+n+" has been found at the index : "+i);
        found = true;
        break;
    }
}
// Linear search implementation using Java 8 features
IntStream.range(0, arr.length)
    .forEach(i -> {
        if (element == arr[i]) {
            int n = element;
            System.out.println("Element : " + n + " has been found at the index : " + i);
            found = true;
            break;
        }
    });
if (!found) {
    System.out.println("Element : "+ element + " not found.");
}
Following piece of code is working properly:
for (int i = 0; i < arr.length; i++) {
    if (element == arr[i]) {
        int n = element;
        System.out.println("Element : " + n + " has been found at the index : " + i);
        found = true;
        break;
    }
}
But, below code with Java 8 features throwing error for the fields inside forEach loop
IntStream.range(0, arr.length)
    .forEach(i -> {
        if (element == arr[i]) {
            int n = element;
            System.out.println("Element : " + n + " has been found at the index : " + i);
            found = true;
            break;
        }
    });
An error occurs:
Local variable found defined in an enclosing scope must be final or effectively final
break cannot be used outside of a loop or a switch
How can I access boolean found inside forEach block in Java 8 features?
 
     
    