Java - cannot find symbol

Discussion in 'Java' started by nalbertini, Feb 12, 2011.

  1. nalbertini

    nalbertini

    Joined:
    Feb 12, 2011
    Messages:
    2
    Likes Received:
    0
    Hi People,

    When creating this program, I am trying to add a while loop so that I can continue to pull in input from the user until they put a -1 for the input. This is the error I get.

    java:46: cannot find symbol
    symbol : variable input
    location: class GradesFour
    String[] studs = input.split("\\s+");

    With the arrow pointing to input. Normally I would know how to answer this but the input variable is already initialized! Please assist. See below.

    import java.util.*;

    public class GradesFour
    {
    public static void main(String[] args)
    {
    int total = 0;
    int numberOfAs = 0;
    int numberOfBs = 0;
    int numberOfCs = 0;
    int numberOfDs = 0;
    int numberOfFs = 0;
    int studsCount = 0;
    int maxA = -1;
    int maxB = -1;
    int maxC = -1;
    int maxD = -1;
    int maxF = -1;
    int minA = 101;
    int minB = 101;
    int minC = 101;
    int minD = 101;
    int minF = 101;
    double aScore = 0;
    double bScore = 0;
    double cScore = 0;
    double dScore = 0;
    double fScore = 0;

    boolean finished = false;
    Scanner keyboard = new Scanner(System.in);
    while(!finished)
    {
    System.out.println("Please enter a list of exam scores (-1 to end input)");
    String input = keyboard.next();
    if(input.equals(-1));{
    finished = true;
    }
    }
    String[] studs = input.split("\\s+"); //Setting a delimiter to separate the string.
    System.out.println(" Statistics");
    System.out.println("------------------------------");

    int grade = 0;
    //Loop designed to look at each part of an array and then classify it by letter grade.
    for(int i = 0; (i < studs.length) && (studs != "-1"); i++){
    grade = Integer.parseInt(studs);
    studsCount++;
    total += grade; //Adds the new grade to the running total.
    //Determines letter Grade max and mins.
    if((grade >= 90) && (grade>maxA)) maxA = grade;
    if((grade >= 90) && (grade<minA)) minA = grade;
    if((grade >= 80 && grade < 90) && (grade>maxB)) maxB = grade;
    if((grade >= 80) && (grade<minB)) minB = grade;
    if((grade >= 70 && grade < 80) && (grade>maxC)) maxC = grade;
    if((grade >= 70) && (grade<minC)) minC = grade;
    if((grade >= 60 && grade < 70) && (grade>maxD)) maxD = grade;
    if((grade >= 60) && (grade<minD)) minD = grade;
    if((grade < 60) && (grade>maxF)) maxF = grade;
    if((grade < 60 && grade >= 0) && (grade<minF)) minF = grade;
    //Calculates the number of each type of letter grade.
    numberOfAs = (grade >= 90)?(numberOfAs + 1):numberOfAs;
    numberOfBs = (grade >= 80 && grade < 90)?(numberOfBs + 1):numberOfBs;
    numberOfCs = (grade >= 70 && grade < 80)?(numberOfCs + 1):numberOfCs;
    numberOfDs = (grade >= 60 && grade < 70)?(numberOfDs + 1):numberOfDs;
    numberOfFs = (grade < 60 && grade >= 0)?(numberOfFs + 1):numberOfFs;
    //Calculates the total value of each letter grade category.
    aScore = (grade >= 90)?(aScore += grade):aScore;
    bScore = (grade >= 80 && grade < 90)?(bScore += grade):bScore;
    cScore = (grade >= 70 && grade < 80)?(cScore += grade):cScore;
    dScore = (grade >= 60 && grade < 70)?(dScore += grade):dScore;
    fScore = (grade >= 0 && grade < 60)?(fScore += grade):fScore;
    }//Start of Output
    studsCount = studsCount - 1;
    System.out.println();
    System.out.println("Number of students " + studsCount);

    System.out.println("------------------------------");

    System.out.println("Number of A's " + numberOfAs);
    System.out.println("Number of B's " + numberOfBs);
    System.out.println("Number of C's " + numberOfCs);
    System.out.println("Number of D's " + numberOfDs);
    System.out.println("Number of F's " + numberOfFs);

    System.out.println("------------------------------");
    //Beware of integer math! Had to type to double; otherwise, would get 0.
    System.out.println("Percentage A's " + (((double)numberOfAs / (double)studsCount) * 100) + "%");
    System.out.println("Percentage B's " + (((double)numberOfBs / (double)studsCount) * 100) + "%");
    System.out.println("Percentage C's " + (((double)numberOfCs / (double)studsCount) * 100) + "%");
    System.out.println("Percentage D's " + (((double)numberOfDs / (double)studsCount) * 100) + "%");
    System.out.println("Percentage F's " + (((double)numberOfFs / (double)studsCount) * 100) + "%");

    System.out.println("------------------------------");
    //Outputs maxes and mins based on the constraints of >-1 and <101.
    if(maxA != -1)
    System.out.print("Maximum A= " + maxA);
    if(minA != 101)
    System.out.println("\tMinimum A= " + minA);
    if(maxB != -1)
    System.out.print("Maximum B= " + maxB);
    if(minB != 101)
    System.out.println("\tMinimum B= " + minB);
    if(maxC != -1)
    System.out.print("Maximum C= " + maxC);
    if(minC != 101)
    System.out.println("\tMinimum C= " + minC);
    if(maxD != -1)
    System.out.print("Maximum D= " + maxD);
    if(minD != 101)
    System.out.println("\tMinimum D= " + minD);
    if(maxF != -1)
    System.out.print("Maximum F= " + maxF);
    if (minF != 101)
    System.out.println("\tMinimum F= " + minF);

    System.out.println("------------------------------");
    System.out.println("Average A score = " + (aScore / numberOfAs));
    System.out.println("Average B score = " + (bScore / numberOfBs));
    System.out.println("Average C score = " + (cScore / numberOfCs));
    System.out.println("Average D score = " + (dScore / numberOfDs));
    System.out.println("Average F score = " + (fScore / numberOfFs));

    System.out.println("------------------------------");
    System.out.println("Average score = " + (total / studsCount));
    }
    }
     
    nalbertini, Feb 12, 2011
    #1
    1. Advertisements

  2. nalbertini

    nalbertini

    Joined:
    Feb 12, 2011
    Messages:
    2
    Likes Received:
    0
    BTW, my code is indented properly, I just didn't know how to get it to import properly here.
     
    nalbertini, Feb 12, 2011
    #2
    1. Advertisements

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments (here). After that, you can post your question and our members will help you out.