java - 为什么需要先初始化 fn3(变量),然后才能在循环外使用 fn3?

标签 java

程序运行良好。但是,如果 fn3 未初始化并且我尝试在循环外访问 fn3,编译器会抛出“变量 fn3 可能尚未初始化”。为什么要声明并初始化fn3?

import java.util.Scanner;

class GenerateFibonacci {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);


System.out.println("Enter the limit of Fibonacci series: ");
        int limit = scan.nextInt();

        System.out.println("The first " + limit + "Fibonacci numbers are : ");

        int fn2=0, fn1=1, fn3=0;

        for(int i=0; i<=limit;i++) {
            if(i <= 1) {
                fn3 = i;
            }
            else {
                fn3 = fn2+fn1;
                fn2 = fn1;
                fn1 = fn3;  
            }

            System.out.println(fn3 + "\t");
        }

        System.out.println("The average is " + fn3/limit);
    }
}

最佳答案

局部变量在使用前必须初始化。它们没有默认值,并且在初始化之前包含垃圾数据。鉴于,

实例和类变量不需要您初始化它们。一旦声明这些变量,它们就会被赋予默认值。

关于java - 为什么需要先初始化 fn3(变量),然后才能在循环外使用 fn3?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51123463/

相关文章:

Java 按值传递——你能解释一下吗?

java - 如何引用特定对象?

java - Java 中的检查异常与非检查异常

java - 为什么我的字符串返回为空字符串?(JAVA)

java - Swing 添加图像不起作用

java - ListUtils.subtract() 如何工作?

java - Android 应用程序因网络原因意外关闭

java - RxJava 如何订阅一个 Subject 到一个 Observable

java - Postgresql-Hibertnate 重复键值违反唯一约束

java - JAVA和iOS的HMAC结果不同