What's wrong in this?

package PATTERNS;

import java.util.Scanner;

public class arrow {

public static void main(String[] args) {

	Scanner scan = new Scanner(System.in);
	int n = scan.nextInt();

	int nsp = n - 1;
	int nst = 1;
	int rows = 1;
	int nsp2 = 1;
	int nst2 = 2;
	int dnsp = 2;
	int dnst = (n - 1) / 2;
	int insp = (n - 1) / 2;
	int inst = (n - 1) / 2;
	int var=1;
	int oppvar=1;
	while (rows <= n) {
		if (rows <= (n + 1) / 2) {

			// for space
			for (int csp = 1; csp <= nsp; csp++) {
				System.out.print(" " + " ");
			}
			nsp = nsp - 2;

			// for numbers
			oppvar=rows;
			for (int cst = 1; cst <= nst; cst++) {
				
				System.out.print(oppvar + " ");
				oppvar--;
			}
			nst = nst + 1;

		}
		// for inner pattern
		if (rows > 1 && rows <= (n + 1) / 2) {
			// inner space
			for (int csp = 1; csp <= nsp2; csp++) {
				System.out.print(" " + " ");
			}
			nsp2 = nsp2 + 2;

			// inner numbers
			var=1;
			for (int cst = 1; cst <= nst2; cst++) {
				System.out.print(var + " ");
				var++;
			}
			nst2 = nst2 + 1;
		}

		// downward pattern

		if (rows > (n + 1) / 2 && rows <=n) {
			// for space
			for (int csp = 1; csp <= dnsp; csp++) {
				System.out.print(" " + " ");
			}
			dnsp = dnsp + 2;

			// for numbers
			if(rows<n)
			{
			oppvar=(n-1)/2;
			for (int cst = 1; cst <= dnst; cst++) {
				
				System.out.print(oppvar + " ");
				oppvar--;
			}
			dnst = dnst - 1;
			}

			// inner space
			for (int csp = 1; csp <= insp; csp++) {
				System.out.print(" " + " ");
			}
			insp = insp - 2;

			
			
			  if(rows<=n) {
				  var=1;
				  for(int cst=1;cst<=inst;cst++)
				  {
			  System.out.print(var+" ");
			  var++;
			  }
				  inst=inst-1;
			  
			  }
			  
		
			 
		}

			// preparation
			System.out.println();

			rows++;
	}

		}

}

hey @Nitya_Somani
Try for
input 3 ya 5

unable to figure it out help me with this code how to solve this pattern