Question about array in java | Sololearn: Learn to code for FREE!
¡Nuevo curso! ¡Todo programador debería aprender IA Generativa!
Prueba una lección gratuita
+ 1

Question about array in java

I have a question. When i declare a Array like this int[] myNumbers = new int[5]; that means i didnt put and i didnt declare any values in the five reserved places yet and the values is null in the five places until i do this int[ ] myNumbers = {5,6,7,8,}; am i right ?

27th May 2017, 4:24 PM
‎Student
‎Student - avatar
9 Respuestas
+ 3
For an int yes. An empty array is all 0's. For float/doubles it would be 0.0 For booleans it would be false For chars it would be '\u0000' For objects it would be null. Whatever the default value is.
28th May 2017, 1:06 AM
Rrestoring faith
Rrestoring faith - avatar
+ 5
The places are not null. = new int[5] will initialize the default value (for ints its 0) to all 5 elements. So, it is an empty array. By doing so you'd have this array: {0,0,0,0,0} = {5,6,7,8} will initialize the values accordingly. This method is useful if you already know the values when creating the array. You can also do: = new int[]{5,6,7,8}; This is the same thing, not writing this is just syntax sugar since the compiler still creates a new array for you anyway.
27th May 2017, 4:31 PM
Rrestoring faith
Rrestoring faith - avatar
+ 2
so as long i don't declare any values in the array so the empty places value is 0 ?
28th May 2017, 1:03 AM
‎Student
‎Student - avatar
+ 2
*Assuming you know that the loop will run 5 times* You've printed the arrays length inside the loop. for(....) { This is what's inside the loop. Everything in here will be looped (or ran by the loop). So: '{}' is called the 'block' or 'scope', and everything in the brackets is what the loop contains. (What will be looped) } Just like how this will print 'a' five times: for(int i = 0; i < 5; i++) { System.out.println(" 'a' "); } This is what you want: System.out.println(arr.length); for(int i = 0; i < 5; i++) { // other stuff in here to loop }
28th May 2017, 1:43 AM
Rrestoring faith
Rrestoring faith - avatar
+ 2
So it doesn't matter if you use the variable in the loop or not, whatever is in the block of the loop is what will be looped. Here's another example that should be helpful: System.out.println("Start!"); for(int i = 0; i < 5; i++) { System.out.println(i); System.out.println("next!"); } System.out.println("Finished!"); ~~Output~~ Start! 0 next! 1 next! 2 next! 3 next! 4 next! Finished!
28th May 2017, 1:54 AM
Rrestoring faith
Rrestoring faith - avatar
+ 2
Yup! the 'hahaha' is in it's own block of nothingness. Only the first block after your loop statement is what's looped. So for other loops: while(condition) { //this is looped } do { //this is looped }while(condition);
28th May 2017, 3:31 PM
Rrestoring faith
Rrestoring faith - avatar
+ 1
Thank you very much for the answer. I have a another question. public class Program { public static void main(String[] args) { int[] arr = new int[3]; //array is int type and holds 3 elements for (int i=0; i<5; i++) { System.out.println(arr.length); } } // main in this code I declared a array without giving it any values for the empty places. and then I wrote a loop and then I wanted to print the length ( 3). I didn't initialize arr and didn't give the array any value like this arr [i]=i. and when I was printing out I didn't make any connection between arr and the variable "i" like this System.out.println (arr [i]); my question is why is the out put 3 five times ? why isn't the out put only 3 once ? I didn't do any connection or relationship between arr and the variable "i" how can the loop still affect and influence in arr ?
28th May 2017, 1:29 AM
‎Student
‎Student - avatar
+ 1
Thank your very much for the clear perfect answer. i understood now why the .length is looped 5 times. Regardless i print for(int i = 0; i < 5; i++) { System.out.println(" 'a' "); } or print for(int i = 0; i < 5; i++) { System.out.println(arr.length); } so every thing inside the loop will prints 5 times. but if i do like this for (int i=0; i<5; i++) { // initialize arr System.out.println(arr.length); } { System.out.print("hahaha"); } That means the "hahaha" will be printed only once because its outside the loop block. am i right ?
28th May 2017, 9:45 AM
‎Student
‎Student - avatar
+ 1
Thank you very much for the answers ☺👍
28th May 2017, 5:57 PM
‎Student
‎Student - avatar