解释这段代码(没有得到我需要的结果)

时间:2013-07-18 03:52:08

标签: java arrays

package javaapplication54;

public class JavaApplication54 {

static int monkey = 8;
static int theArray[] = new int[1];

public static void main(String[] args) {
// i attempted two ways to try to set monkey to = theArray[0];
    monkey = theArray[0];
    theArray[0] = monkey;
//i tried to get the result 8;
    System.out.println(theArray[0]);

}

}

我试图通过打印出阵列[0]来获得结果8,但结果为零。

          run:
   0
 BUILD SUCCESSFUL (total time: 0 seconds)

4 个答案:

答案 0 :(得分:2)

您在第一次初始化theArray[0]monkey = theArray[0] theArray[0]行中0分配了theArray

static int theArray[] = new int[1];

答案 1 :(得分:2)

您正在使用int原语,因此默认为0。

让我一块一块地分解你的代码,这样你才能理解这一点。

您在此声明monkey为8

static int monkey = 8;

在这里你创建一个新数组

static int theArray[] = new int[1];

此时,数组仅包含0,因为它是int变量的默认值。因此,theArray[0]等于0

在这里你得到0并将其分配给猴子,其前一个值为8

monkey = theArray[0];

然后你得到了新分配的猴子,现在等于0,并将其分配给theArray[0]

theArray[0] = monkey;

所以theArray[0]相当于0现在相当于......是的,0

最后但并非最不重要的是,您使用0

打印System.out.println(theArray[0]);

这就是为什么你得到0而不是8

答案 2 :(得分:1)

int默认值为0,因此按预期工作。

如果您希望它指向8,请在将monkey指定给其他地方之前先将其保存在临时变量中。

答案 3 :(得分:0)

main方法中的第1行将monkey的值替换为存储在Array [0]中的值,在这种情况下,它是默认的int值(0)。 第2行将theArray [0]的值设置为monkey,因此monkey(8)的初始值完全丢失。 如果你想在theArray [0]中存储猴子变量,也许这就是你可以尝试的,

public class JavaApplication54 {

static int monkey = 8;
static int theArray[] = new int[1];

public static void main(String args[])
{
theArray[0]=monkey;
System.out.println(theArray[0]);
}

输出: - 8

同时考虑数据和变量都是静态的这一事实,这是必需的,因为您在静态方法中使用它们,但如果您从代码中的任何位置更改其值,它将反映所有地方的更改。

http://www.caveofprogramming.com/java/java-for-beginners-static-variables-what-are-they/