Hello and welcome to our community! Is this your first visit?
Enjoy an ad free experience by logging in. Not a member yet? Register.

# Thread: Java: 2-D array multiplication table problems

1. ## Java: 2-D array multiplication table problems

hi, im a fairly new java programmer...

i want to make a multiplication table where the user can choose how many rows and columns the table has, i get a "java.lang.ArrayIndexOutOfBoundsException: 5
at Review.main(Review.java:26)" error...i dont get that, anyone got any ideas? anywayz heres my code take a look....

// The "Review" class.
import java.awt.*;
import hsa.Console;

public class Review
{
static Console c; // The output console

public static void main (String[] args)
{
c = new Console ();

int a, b;
c.print ("a/row:");
c.print ("b/col:");

int table[] [] = new int [a] [b]; // max for table

for (int row = 1 ; row <= a ; row++) //length of rows
{
for (int col = 1 ; col <= b ; col++) //length of columns
{
table [row] [col] = row * col;
c.print (table [row] [col] + " ");

}
c.println ();
}

} // main method
} // Review class

• Originally Posted by finittz
int table[] [] = new int [a] [b]; // max for table

for (int row = 1 ; row <= a ; row++) //length of rows
{
for (int col = 1 ; col <= b ; col++) //length of columns
{
ArrayIndexOutOfBoundsException indicates that the array index (the number representing the element you're trying to interact with) is outside of the element indices in the array.

From a quick inspection, you should be using the less than operator rather than the less than or equal to operator in your for statements. The reason for this is that array indices start at zero while the variables a and b specify the number of elements in the array and hence will be one larger than the highest array index.

• ok now that i've gotten that solved heres my renewed program...except now the problem is with alignment of the numbers...i need them to be centerly aligned, any ideas?

// The "Review" class.
import java.awt.*;
import hsa.Console;

public class Review
{
static Console c; // The output console

public static void main (String[] args)
{
c = new Console ();

int a, b;
c.print ("a/row:");
c.print ("b/col:");

a++;
b++;
int table[] [] = new int [a] [b]; // max for table

for (int row = 1 ; row < a ; row++) //length of rows
{
for (int col = 1 ; col < b ; col++) //length of columns
{
table [row] [col] = row * col;
c.print (table [row] [col] + " ");

}
c.println ();
}

} // main method
} // Review class

•

#### Posting Permissions

• You may not post new threads
• You may not post replies
• You may not post attachments
• You may not edit your posts
•