когда я компилирую этот код, он дает мне ошибку: не удается найти символ> investmentAmount в последнем сегменте. Если я выберу указанный сегмент:
JOptionPane.showMessageDialog(null, "The total amount you have to pay after 5 years is "
+ Math.pow(investmentAmount(interestRate+1),5));
то остальная часть кода работает, за исключением того, что мне нужен этот сегмент кода для передачи. Если я выберу InvestmentAmount в этом сегменте, но сохраняю интересRate, тогда код работает отлично и дает мне сумму через пять лет. Почему investAmount работает раньше в коде, а не в конце? Почему InterestRate не испортит код в конце и investmentAmount? Здесь весь code-
import javax.swing.JOptionPane;
public class Ch3IndLabAssignment
{
public static void main( String [] args )
{
String investorName = JOptionPane.showInputDialog( null, "Please enter your first and last name");
JOptionPane.showMessageDialog(null, "Your name is " + investorName);
String input = JOptionPane.showInputDialog( null, "Please enter your investment amount");
double investmentAmount = Double.parseDouble(input);
JOptionPane.showMessageDialog(null, "Your investment amount is " + investmentAmount);
String input2 = JOptionPane.showInputDialog( null, "Please enter the interest rate as a decimal");
double interestRate = Double.parseDouble(input2);
JOptionPane.showMessageDialog(null, "Your interest rate is " + interestRate);
JOptionPane.showMessageDialog(null, "The total amount you have to pay back after 5 years is " +
Math.pow(investmentAmount(interestRate+1),5));
}
}
Вы, вероятно, хотели написать:
Math.pow(investmentAmount * (interestRate+1), 5));
В математике A (B) часто означает, что A умножается на B. В программировании это часто означает, что A является функцией, а B является одним из его аргументов. Компилятор ищет метод (а не переменную), называемый investmentAmount
поскольку он не может найти метод, соответствующий этому символу, вы получите ошибку "не найти символ".
В коде
JOptionPane.showMessageDialog(null, "The total amount you have to pay after 5 years is "
+ Math.pow(investmentAmount(interestRate+1),5));
Вы рассматриваете investmentAmount как метод с одним параметром, который представляет interestRate+1
. Возможно, вы имели в виду:
JOptionPane.showMessageDialog(null, "The total amount you have to pay after 5 years is "
+ Math.pow(investmentAmount*(interestRate+1),5));
Обратите внимание на *
.
Большинство языков программирования, включая Java, не выполняют неявное умножение. Вы пытаетесь использовать свою переменную в качестве имени метода. Используйте *
для умножения.