Онлайн компиляция Java показывает ошибку, как это
static void isPrime (int n)
{ int f;
for(int i=2;i<=Math.sqrt(n);i++)
{
if(n % i == 0)
{
f = 1;
}
}
if(n == 1 || f == 1)
{
System.out.println("No");
}
else
System.out.println("Yes");
}
Ошибка компиляции
Compilation Error:
prog.java:42: ошибка: переменная f, возможно, не была инициализирована, если (n == 1 || f == 1) ^ 1 ошибка
2 ответа
В.NET целые числа и другие типы значений всегда имеют значения по умолчанию. Таким образом, в C# переменная 'f' будет иметь целочисленное значение по умолчанию 0.
Я предполагаю, что Java отличается... Чтобы избавиться от этой ошибки компиляции, просто присвойте значение f.
В примере:
int f = 0;
Просто инициализируйте его в ноль.
static void isPrime (int n) {
int f=0;
for(int i=2;i<=Math.sqrt(n);i++){
if(n % i == 0){
f = 1;
}
}
if(n == 1 || f == 1){
System.out.println("No");
}else
System.out.println("Yes");
}