# Java program to check if a matrix is upper triangular matrix or not

### Java program to check if a matrix is upper triangular matrix or not :

In this tutorial, we will learn how to find if a matrix is upper triangular or not. A matrix is called *upper triangular* if all the elements of the matrix below the *main diagonal* is *0*. Else, it is not an upper triangular matrix.

Our Java program will first take the inputs for the matrix from the user and then it will check if it is upper triangular or not. For example, below matrix is upper triangular :

1 2 3 0 4 5 0 0 6

The main diagonal is *1-4-6* and all elements are *0* below the diagonal.

### How to solve this problem :

Let’s take one example, below matrix is an upper triangular matrix :

1 2 3 4 0 5 6 7 0 0 8 9 0 0 0 10

Let’s try to analyze it :

1. row = 0 , total 0 = 0

2. row = 1 , total 0 = 1, for column 0

3. row = 2 , total 0 = 2, from column 0 to column 1

4. row = 3 , total 0 = 3, from column 0 to column 2

So, for line no. *i*, we will check for all column positions starting from *0* to *i – 1*. If all are *0*, it is not an upper triangular matrix. Else, it is . Let’s do this programmatically :

### Java program to check upper triangular matrix :

import java.util.Scanner; class Main { public static void main(String args[]) { //1 int row, col; boolean isUpperTriangular = true; //2 Scanner scanner = new Scanner(System.in); System.out.println("Enter total number of rows : "); row = scanner.nextInt(); //3 System.out.println("Enter total number of columns : "); col = scanner.nextInt(); //4 int inputArray[][] = new int[row][col]; //5 for (int i = 0; i < row; i++) { for (int j = 0; j < col; j++) { System.out.println("Enter element for array[" + (i + 1) + "," + (j + 1) + "] : "); inputArray[i][j] = scanner.nextInt(); } } //6 System.out.println("You have entered : "); for (int i = 0; i < row; i++) { for (int j = 0; j < col; j++) { System.out.print(inputArray[i][j] + "\t"); } System.out.println(); } //7 for (int i = 0; i < row; i++) { for (int j = 0; j < i; j++) { if (inputArray[i][j] != 0) { isUpperTriangular = false; break; } } if (!isUpperTriangular) { break; } } //8 if(isUpperTriangular){ System.out.println("Upper triangular matrix."); }else{ System.out.println("Not an Upper triangular matrix."); } } }

### Explanation :

1. Create two integers *row* and *col* to store the row and columns for the matrix.*isUpperTriangular* value is a flag to determine if it is a upper triangular or not. If yes, it’s value will be *true* , else *false*.

2. Create one scanner object to read the user input values. Ask the user to enter the rows count. Read and store it in *row* variable.

3. Similarly, read the total count of columns for the matrix and store it in *col* variable.

4. Create one two dimensional integer array *inputArray*. The row and columns of this array is save as the user given *row* and *col* values.

5. Run two *for loops* and read all elements for the matrix. Read and store them in the two dimensional array.

6. Print out the matrix to the user. Since we are storing it in a two dimensional array, add one new line after each row.

7. Now, scan all elements of the matrix using two loops. The outer loop will run from *i = 0* to *i = row -1*. Inner loop will run from *j = 0* to *j = i -1*. That means, it will check only the values below the main *diagonal* of the matrix. Check for each item if it is *0* or not. If not, set the value of *isUpperTriangular = false* and break from both loop. One *break* will break from the inner loop. We are checking again using an *if* and breaking from the outer loop.

8. Finally, based on the flag value, print if it is a upper triangular matrix or not.

### Sample Output :

Enter total number of rows : 3 Enter total number of columns : 3 Enter element for array[1,1] : 1 Enter element for array[1,2] : 2 Enter element for array[1,3] : 3 Enter element for array[2,1] : 0 Enter element for array[2,2] : 4 Enter element for array[2,3] : 5 Enter element for array[3,1] : 0 Enter element for array[3,2] : 0 Enter element for array[3,3] : 6 You have entered : 1 2 3 0 4 5 0 0 6 -> Upper triangular matrix. Enter total number of rows : 3 Enter total number of columns : 3 Enter element for array[1,1] : 1 Enter element for array[1,2] : 2 Enter element for array[1,3] : 3 Enter element for array[2,1] : 4 Enter element for array[2,2] : 5 Enter element for array[2,3] : 6 Enter element for array[3,1] : 7 Enter element for array[3,2] : 8 Enter element for array[3,3] : 9 You have entered : 1 2 3 4 5 6 7 8 9 -> Not an Upper triangular matrix.

## 2 Comments

## Avanish Gupta · August 18, 2019 at 4:13 am

What is the isUpperTriangle doing here ?How is its value changing?

## admin · August 21, 2019 at 4:32 am

On step 7 we are setting it to false. You can print this value in the for loop to understand what the program is doing…