【问题标题】:Boards equals 0 [closed]Boards 等于 0 [关闭]
【发布时间】:2013-09-27 22:35:46
【问题描述】:

我对 int 板有 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;
    }
}

第一行和第二行打印等于 480 360 0 0,下一个打印等于 0 0 30 360 我需要 480 360 480 360 帮忙。

【问题讨论】:

  • int[] numbers = new int[5]; .. System.out.println(numbers[0]); 那也会打印 0。没有设置值的整数数组默认为 0。
  • 第 1 次上课时为 1,第 2 次上课时为 2 次​​span>

标签: java int


【解决方案1】:

int[] 数字 = 新的 int[5]; .. System.out.println(数字[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; Y[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。

【讨论】:

  • 我用 Enemy 类扩展了主类
【解决方案2】:

除了元素 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;
 }

【讨论】:

  • 抱歉我的代码错误,已编辑!
  • 我的答案现在应该更清楚了。除了 X[0] 和 Y[0],您目前没有初始化任何东西。
猜你喜欢
  • 2022-11-21
  • 2021-10-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-03-30
  • 2019-05-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多