I am in the process of learning Java. Below is the program that I've been trying to compile, but cannot figure out why 'x' in line 38 provides the following error: 'cannot find symbol'. Any help would be greatly appreciated.
import java.util.Scanner; class metropolis_HW2_7 { static int count = 0; public static void main(String[] args) { double a = 0.; double b = Math.PI; Scanner sc = new Scanner(System.in); while (true) { System.out.println(" Number of bins?"); int nbin = sc.nextInt(); if (nbin < 1) System.exit(0); double[] bin = new double[nbin]; System.out.println(" Number of histories to run?"); int N = sc.nextInt(); double dx = (b - a) / nbin; for (int i = 0; i < N; i++) { if (count == 0) { double squiggle1 = Math.PI * Math.random(); double squiggle2 = Math.PI * Math.random(); double y_1 = 2 * squiggle1 + Math.sin(squiggle1); double y_2 = 2 * squiggle2 + Math.sin(squiggle2); if (y_2 < y_1) { squiggle1 = squiggle2; double x = squiggle2; } else { squiggle1 = squiggle1; double x = squiggle2 / squiggle1; } count++; } else { double squiggle1; double x = Sample(squiggle1); } int binNumber = (int) ((x - a) / dx); bin[binNumber] += 1.; } double x = a - dx / 2.; for (int i = 0; i < nbin; i++) { x += dx; bin[i] /= N * dx; System.out.printf(" Bin %1$5d Sample for x = %2$7.5f is %3$7.5f vs %4$7.5f Ratio (%5$f) \n", i, x, bin[i], PDF(x), bin[i] / PDF(x)); } } } static double Sample(double squiggle1) { double squiggle2 = Math.PI * Math.random(); double y_1 = 2 * squiggle1 + Math.sin(squiggle1); double y_2 = 2 * squiggle2 + Math.sin(squiggle2); if (y_2 < y_1) { squiggle1 = squiggle2; return squiggle2; } else { squiggle1 = squiggle1; return squiggle2 / squiggle1; } count++; } static double PDF(double x) { return (2 * x + Math.sin(x)) / (Math.pow(Math.PI, 2) + 2); } }