gpt4 book ai didi

java - java中的局部变量

转载 作者:行者123 更新时间:2023-12-01 06:53:46 27 4
gpt4 key购买 nike

所有代码均采用 Java 编写。

public class TestLocal 
{
public static void main(String [] args)
{
int x;
if (args[0] != null)
{ // assume you know this will
// always be true
x = 7; // statement will run
}
int y = x; // the compiler will choke here
}
}

所以,我的问题是为什么编译器会在这里卡住?它是否绕过 if 语句(这看起来很可怕......)如果我在 if 语句 block 之外初始化 x ,那么编译器不会提示,如以下代码所示:

public class TestLocal 
{
public static void main(String [] args)
{
int x;
x = 7; // compiler is happy now..:)
if (args[0] != null)
{ // assume you know this will
// always be true
// statement will run
}
int y = x; // the compiler not complain here now.
}
}

为什么编译器会出现如此可怕的行为?

最佳答案

Java 要求您初始化局部变量作为安全措施。它可以防止您意外读取奇数值。如果编译器没有提示并且您要读取 x 的值,那么它可以是任何值。

关于java - java中的局部变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18119705/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com