#java
#java
Вопрос:
import java.util.Scanner;
public class Insurance
{
public static void main(String[] args)
{
Scanner scan = new Scanner(System.in);
System.out.println("Enter current year: ");
int CurrentYear = scan.nextInt();
System.out.println("Enter birth year: ");
int BirthYear = scan.nextInt();
System.out.println("Premium amount is: $" PremiumAmount);
calculatePremium(CurrentYear, BirthYear);
}
public static int calculatePremium(int CurrentYear, int BirthYear)
{
int decade = (CurrentYear - BirthYear)/10;
double PremiumAmount = (decade 15)*20;
return PremiumAmount;
}
}
ошибка: не удается найти символ PremiumAmount.
System.out.println(«Сумма премии составляет: $ » PremiumAmount);
^
заранее спасибо и извините, если это глупый вопрос.
Комментарии:
1. Подсказка: вы определили PremiumAmount в локальной области для метода метода calculatePremium() . Как он будет доступен из другого метода? Вы можете запустить его в режиме отладки и сможете самостоятельно разобраться.
Ответ №1:
Вы еще не задали свой вопрос, но из того, что я вижу, я могу посоветовать вам взглянуть на этот сайт, чтобы выяснить причину вашей проблемы
Ошибки «Не удается найти символ» обычно возникают при попытке ссылаться на необъявленную переменную в вашем коде. Ошибка «Не удается найти символ» означает, что компилятор не может этого сделать. Похоже, что ваш код ссылается на что-то, что компилятор не понимает.
Вы не объявили свой PremiumAmount в функции main, вы только объявили его в calculatePremium, к которому нельзя получить доступ из main. Поскольку метод calculatePremium возвращает значение для PremiumAmount, вы можете попробовать представить его следующим образом
System.out.println("Premium amount is: $" calculatePremium());
И не забудьте удалить строку под ним.
Ответ №2:
Значение PremiumAmount доступно только в рамках метода calculatePremium.Он недоступен в основном методе. Пожалуйста, измените свой код в методе main:
System.out.println("Premium amount is: $" calculatePremium(CurrentYear, BirthYear));
Ответ №3:
Я рекомендую ознакомиться с «областью действия» в Java. (https://www.w3schools.com/java/java_scope.asp ) Вы получаете эту ошибку, потому что переменная PremiumAmount существует только в области второго метода. У вас также есть метод calculatePremium, возвращающий значение int, когда оно должно быть double . Я исправил эти ошибки и отступ. Старайтесь разделять методы, это помогает понять сложный код.
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.println("Enter current year: ");
int CurrentYear = scan.nextInt();
System.out.println("Enter birth year: ");
int BirthYear = scan.nextInt();
double PremiumAmount = calculatePremium(CurrentYear, BirthYear);
System.out.println("Premium amount is: $" PremiumAmount);
}
public static double calculatePremium(int CurrentYear, int BirthYear) {
int decade = (CurrentYear - BirthYear)/10;
double PremiumAmount = (decade 15)*20;
return PremiumAmount;
}
Комментарии:
1. Вы также можете сократить второй метод, удалив строку, в которой вы объявляете PremiumAmount (внизу), и поместив математику с переменной decade в строку возврата.