int [][]i={{1,2,3},{4,5,6}}; for (int []n: i) /*This is single dimensional Array so how can you are accessing multi dimensional Arrays within Single dimensional Array.*/
The enhanced for loop is in the form of for( declaration : expression ) { } where declaration declares a new variable (which typically will be used in the for loop) and expression must evaluate to an array of the type of the variable declared in declaration
In your first example, n is declared as a single dimensional array and the expression is a two dimensional array--which is an array of single dimensional arrays--so this meets the enhanced for loop specification.
In the second example, the expression "i[2]" is a single dimensional int array and n2 is an int, so again you are fine as far as the compiler is concerned. You will however get a runtime exception (ArrayIndexOutOfBoundsException) since i is only of length 2 (contains 2 int arrays) and therefore the maximum array index is 1.
I have always wanted to have a neighbor just like you - Fred Rogers. Tiny ad:
Gift giving made easy with the permaculture playing cards