有什么方法可以解决这个输出问题或初始化 i

Is there any method to solve this output problem or to initialize i

这是两个相同的代码,第一个是C++,另一个是Java。 C++代码编译成功,而Java代码报错:

last is not initialized

但最后,i 的值将是 last。但它抛出错误,请帮我弄清楚。

C++代码:

#include <iostream>
using namespace std;

int main()
{
    int arr[] = {1,2,3,4,5,6};
    int last;
    for(int i=0;i<6;i++)
    {
        cout<<arr[i]; 
        last = i;
    }
    cout<<last;
    return 0;
}

输出:

1234565

Java代码:

public class Main
{
    public static void main(String[] args) {
        int arr[] = {1,2,3,4,5,6};
        int last;
        for(int i=0;i<6;i++)
        {
           System.out.print(arr[i]);
           last = i;
        }
        System.out.print(last);
        
    }
}

输出:

Main.java:19: error: variable last might not have been initialized
        System.out.print(last);
                         ^
1 error

在我看来你没有先初始化变量。初始化它们是将它们设置为等于一个值:

int a;        // This is a declaration
a = 0;        // This is an initialization
int b = 1;    // This is a declaration and initialization

请注意,Java 原语具有默认值,但正如一位用户在下面评论的那样

当声明为 class 成员时,它们的默认值为零。局部变量没有默认值

尝试以下操作:

public static void main(String args[]) {
    int arr[] = {1,2,3,4,5,6};
    int last = 0;
    for(int i=0;i<6;i++)
    {
        System.out.print(arr[i]);
        last = i;
    }
    System.out.print(last);
}