有什么方法可以解决这个输出问题或初始化 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);
}
这是两个相同的代码,第一个是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);
}