0
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 可能尚未初始化 if(n == 1 || f == 1) ^ 1 错误

4

2 回答 2

2

在 .NET 中,整数和其他值类型始终具有默认值。因此,在 C# 中,变量“f”的默认整数值为 0。

我猜Java是不同的......要摆脱这个编译错误,只需为f赋值。

例如:

int f = 0;
于 2018-11-25T12:57:13.317 回答
0

只需将其 f 初始化为零。

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

 }
于 2018-11-25T12:59:17.340 回答