我对int board有1个问题。 当我在while循环中添加一个新int时,所有int都等于0。
public class Enemy extends Render {
private int X[] = new int[64];
private int Y[] = new int[64];
private int i = 1;
public Enemy(int x, int y, int num1, int num2) {
//x = 480, y = 360, num2 = 2
X[num1-1] = x;
Y[num1-1] = y;
while(i <= num2) {
System.out.println(X[0]+" "+Y[0]+" "+X[1]+" "+Y[1]);
i++;
}
i = 1;
}
}
第1行和第2行打印等于480 360 0 0,接下来打印等于0 0 30 360 我需要480 360 480 360帮助。
答案 0 :(得分:0)
除了元素num1-1
之外,您不会将值放入数组的任何元素中。
您的if
应该是while
吗?
你在哪里:
X[num1-1] = x;
Y[num1-1] = y;
你需要更像的东西:
for(int i=0;i<X.length;i++){
X[i] = x;
Y[i] = y;
}
答案 1 :(得分:0)
int [] numbers = new int [5]; .. System.out.println(numbers [0]);这也会打印0。默认情况下,没有设置值的整数数组将为0。
如果您收到x = 480, y = 360, num2 = 2
(我们不知道num1),请假设num1 = 1
X[num1-1] = x;
Y[num1-1] = y;
这将是
X [1-1] = x; // X [0] = 480 Y [1-1] = y; // Y [0] = 360
现在...
while(i <= num2) {
System.out.println(X[0]+" "+Y[0]+" "+X[1]+" "+Y[1]);
i++;
}
在这里,无论i是什么,你总是打印相同的值,所以如果你还没有为这些元素设置一个值,那么它们总是为0。
在那里你将打印480,360然后是0,0,因为你只有位置0的数组的设置值。位置1中的那些尚未设置,默认为0。
我不知道你的意思是:next output equals 0 0 30 360
但也许你想要这样的东西......
...
//如果num1为1,那么它将用X填充X [0]和X [1]。 X [num1-1] = x; 是[num1-1] = y;
X[num1] = x;
Y[num1] = y;
..
// Out of bounds risky here, make sure you have enough elements before calling i+1 index.
System.out.println(X[i]+" "+Y[i]+" "+X[i+1]+" "+Y[i+1]);
...
但请确保不会导致出界。
现在,如果您发送了num1 = 2,那么
X[2-1] = x; //X[1] = 480
Y[2-1] = y; //Y[1] = 360
您没有为索引为0的元素设置值,因此它将保留默认值0。