онлайн компиляция Java показывает ошибку, как это - PullRequest
0 голосов
/ 25 ноября 2018
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 ]

0 голосов
/ 25 ноября 2018

Просто инициализируйте его до нуля.

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");

 }
0 голосов
/ 25 ноября 2018

В целых числах .NET и других типах значений всегда есть значения по умолчанию.Поэтому в C # переменная 'f' будет иметь целочисленное значение по умолчанию, равное 0.

Я полагаю, что Java отличается ... Чтобы избавиться от этой ошибки компиляции, просто присвойте значение f.

Например:

int f = 0;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...