Week 6 - Friday
What did we talk about last time? Loop examples do-while loops
I said that the do-while loop is rarely used, but certain kinds of input are well suited to a do-while For example, what about a program that gives a menu of options Add two numbers 1. 2. Subtract two numbers Multiply two numbers 3. 4. Quit
Loops are great But, without a way to talk about a list of variables, we can't get the full potential out of a loop Enter: the array
An array is a homogeneous , static data structure Homogeneous means that everything in the array is the same type: int , double , String , etc. Static (in this case) means that the size of the array is fixed when you create it
The args variable passed into the main() method is an array of type String This array has a set number of String s (maybe zero) that you can use as input to your program Now, we are giving you the ability to create and manipulate your own arrays
To declare an array of a specified type with a given name : type[] name; Example with a list of type int : int[] list; Just like any variable declaration, but with []
When you declare an array, you are only creating a variable that can hold an array At first, it holds nothing, also know as null To use it, you have to create an array, supplying a specific size: int[] list; list = new int[100]; This code creates an array of 100 int s
You can access an element of an array by indexing into it, using square brackets and a number list[9] = 142; System.out.println(list[9]); Once you have indexed into an array, that variable behaves exactly like any other variable of that type You can read values from it and store values into it Indexing starts at 0 and stops at 1 less than the length
When you instantiate an array, you specify the length Sometimes (like in the case of args ) you are given an array of unknown length You can use its length member to find out int[] list = new int[42]; int size = list.length; // Prints 42 System.out.println("List has " + size + " elements");
When you create an int , double , char , or boolean array, the array is automatically filled with certain values Type Value int 0 double 0.0 char '\0' boolean false For other types, including String s, each index in the array must be filled explicitly
Explicit initialization can be done with a list: String[] days = {"Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"}; Or, a loop could be used to set all the values: String[] numbers = new String[100]; for(int i = 0; i < numbers.length; ++i) numbers[i] = "" + (i + 1);
An array takes up the size of each element times the length of the array Each array starts at some point in computer memory The index used for the array is actually an offset from that starting point That's why the first element is at index 0
We can imagine that we have an array of type int of length 10 Java decides what address in memory is going to be used, but let's say it starts at 524 Addresses 524 528 532 536 540 544 548 552 556 560 12 43 -9 6 789 0 -23 23 10 6 0 1 2 3 4 5 6 7 8 9 Indexes
Arrays are a fixed size list of a single kind of data A for loop is ideal for iterating over every item and performing some operation for loops and arrays will crop up again and again Of course, a while loop can be used with an array, but it rarely is
Imagine that we have an array of int s called list Let's use a for loop to sum up those int s int sum = 0; for(int i = 0; i < list.length; ++i) sum += list[i]; Straightforward, just like before We don't even need to know how big the array is ahead of time
Ask the user how many words he or she wants to enter Make an array of String values of that length Read in all of the words and store them in the array Print all the words back out
More on arrays Representing sound inside of a computer StdAudio
Keep reading Chapter 6 of the textbook Finish Project 2 Due tonight before midnight!
Recommend
More recommend