Онлайн компиляция 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");

 }
Другие вопросы по тегам