Моя цель состоит в том, чтобы пользователь вводил название категории, сорт этой категории и вес этой категории.Калькулятор Java-класса
Теоретически все должно работать отлично, за исключением того, что мой первый цикл никогда не заканчивается.
Это код, который я до сих пор:
package gradecalculator;
import java.util.Scanner;
public class GradeCalculator
{
public static void main(String[] args)
{
String categoryName = null;
double categoryGrade;
double categoryWorth;
double Grade = 0;
String[] nameArray = new String[10];
double[] gradeArray = new double[10];
double[] worthArray = new double[10];
double[] categoryArray = new double[10];
int c = 0;
int c1 = 0;
Scanner entry = new Scanner(System.in);
while(!"Quit".equals(categoryName))
{
categoryName = entry.next();
nameArray[c] = categoryName;
categoryGrade = entry.nextDouble();
gradeArray[c] = categoryGrade;
categoryWorth = entry.nextDouble();
worthArray[c] = categoryWorth;
categoryArray[c] = finalCategory(categoryGrade, categoryWorth);
c++;
}
while(c != 0)
{
System.out.printf("%S:\t%f%\tWorth: %f\n", nameArray[c1], gradeArray[c1], worthArray[c1]);
c--;
c1++;
}
while(c1 != 0)
{
Grade = Grade + categoryArray[c];
c1--;
c++;
}
}
public static double finalCategory(double Grade, double Worth)
{
return (Grade * (Worth/100));
}
}
Я считаю, что проблема была сужена до:
while(!"Quit".equals(categoryName))
{
categoryName = entry.next();
nameArray[c] = categoryName;
categoryGrade = entry.nextDouble();
gradeArray[c] = categoryGrade;
categoryWorth = entry.nextDouble();
worthArray[c] = categoryWorth;
categoryArray[c] = finalCategory(categoryGrade, categoryWorth);
c++;
}
и более конкретно:
while(!"Quit".equals(categoryName))
Что Я пытаюсь добиться того, что как только пользователь войдет в categoryName
, и он окажется слово «Quit», цикл while будет завершен, и программа будет двигаться дальше. Очевидно, этого не происходит, поэтому я бы очень признателен за любую помощь в решении проблемы.
Попробуйте поместить 'if (categoryName.equals (« Quit »)) break;' после вызова каждого '.next()' и '.nextDouble()' и до того, как вы присвоите значение массиву – chancea