我正在试着做一个成分百分比计算器(主要是为了更快地完成我的化学作业(job)),我正在进行实际的计算.我试图从用户输入的元素中获取质量,但它总是返回-1,并显示以下错误:
我试着调试它,但我的IDE(IntelliJ Idea)不让我看到变量或try 判断任何东西.
100错误发生在第64行.
import java.util.ArrayList ;
import java.util.Scanner ;
import java.util.concurrent.TimeUnit ;
import static java.lang.System.in ;
import static java.lang.System.out ;
public class Main {
static void clearScreen() {
out.println("\033[H\033[2J") ;
out.flush() ;
}
public static void main(String[] args) {
String elementID ;
int totalElements ;
int elementCount ;
double elementMass ;
double totalMass ;
Scanner sc = new Scanner(in) ;
ArrayList<String> elementNames = new ArrayList<>() ;
ArrayList<String> wantedElements = new ArrayList<>() ;
ArrayList<Integer> wantedElementsCount = new ArrayList<>() ;
ArrayList<Double> elementMasses = new ArrayList<>() ;
while (true) {
out.print("\nEnter amount of elements in compound: ") ; totalElements = Integer.parseInt(sc.nextLine()) ;
out.println("TOTAL ELEMENTS COUNT: " + totalElements + "\n") ;
wantedElements.clear() ;
wantedElementsCount.clear() ;
for (int elms = 1 ; elms <= totalElements ; elms++) {
out.print("Enter name for element #" + elms + " (it will be remembered if spelt correctly): ") ; elementID = sc.nextLine() ;
out.println("ENTERED ELEMENT NAME: " + elementID + "\n") ;
if (!(elementNames.contains(elementID))) {
elementNames.add(elementID) ;
out.print("Enter mass for element #" + elms + ": ") ; elementMass = Double.parseDouble(sc.nextLine()) ;
out.println("ENTERED ELEMENT MASS: " + elementMass + "\n") ;
if (!(elementMasses.contains(elementMass))) {
elementMasses.add(elementMass) ;
}
wantedElements.add(elementID) ;
} else {
wantedElements.add(elementNames.get(elementNames.indexOf(elementID))) ;
}
out.print("Enter the amount of the element there is: ") ; elementCount = Integer.parseInt(sc.nextLine()) ;
out.println("ENTERED ELEMENT AMOUNT: " + elementCount + "\n") ;
wantedElementsCount.add(elementCount) ;
}
totalMass = 0 ;
for (int i = 0 ; i < elementMasses.size() ; i++) {
totalMass += elementMasses.get(i) ;
}
for (int i = 0 ; i < wantedElements.size() ; i++) {
out.print("% MASS OF " + wantedElements.get(i) + ": ") ;
// The wantedElements.indexOf() part tries to get the index of the current elements that the user wants to use in the given equation, which will correlate with the elementMasses list
out.println(elementMasses.get(wantedElements.indexOf(i)) * wantedElementsCount.indexOf(i) / totalMass * 100) ; // This is where the error happens
}
out.println("TOTAL COMPOUND MASS" + totalMass) ;
}
}
}