Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/367.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 程序在创建数组的新实例时冻结 package net.gfx; 公共类TileSet{ 公共最终积分=627; 类瓷砖{ int x=0,y=0; int w=0,h=0; } 公共瓷砖[]=新瓷砖[瓷砖]; 公共瓷砖集(){ 对于(int i=0,y=0;i1280的情况,因为每次通过循环(第一个循环除外)x都是25。如果希望通过循环每次增加x 25,则应使用+=运算符。_Java_Arrays - Fatal编程技术网

Java 程序在创建数组的新实例时冻结 package net.gfx; 公共类TileSet{ 公共最终积分=627; 类瓷砖{ int x=0,y=0; int w=0,h=0; } 公共瓷砖[]=新瓷砖[瓷砖]; 公共瓷砖集(){ 对于(int i=0,y=0;i1280的情况,因为每次通过循环(第一个循环除外)x都是25。如果希望通过循环每次增加x 25,则应使用+=运算符。

Java 程序在创建数组的新实例时冻结 package net.gfx; 公共类TileSet{ 公共最终积分=627; 类瓷砖{ int x=0,y=0; int w=0,h=0; } 公共瓷砖[]=新瓷砖[瓷砖]; 公共瓷砖集(){ 对于(int i=0,y=0;i1280的情况,因为每次通过循环(第一个循环除外)x都是25。如果希望通过循环每次增加x 25,则应使用+=运算符。,java,arrays,Java,Arrays,我想做的基本上是在屏幕上创建一个瓷砖阵列。我已经修复了我在这里遇到的原始错误 但现在当我运行它时,它冻结了。更多详细信息请参见代码。=+不是java运算符。每次在x循环中将x设置为值25。因此,您永远不会进入x>1280的情况,因为每次通过循环(第一个循环除外)x都是25。如果希望通过循环每次增加x 25,则应使用+=运算符。=+不是java运算符。每次在x循环中将x设置为值25。因此,您永远不会进入x>1280的情况,因为每次通过循环(第一个循环除外)x都是25。如果希望通过循环每次增加x 2

我想做的基本上是在屏幕上创建一个瓷砖阵列。我已经修复了我在这里遇到的原始错误
但现在当我运行它时,它冻结了。更多详细信息请参见代码。

=+不是java运算符。每次在x循环中将x设置为值25。因此,您永远不会进入x>1280的情况,因为每次通过循环(第一个循环除外)x都是25。如果希望通过循环每次增加x 25,则应使用+=运算符。

=+不是java运算符。每次在x循环中将x设置为值25。因此,您永远不会进入x>1280的情况,因为每次通过循环(第一个循环除外)x都是25。如果希望通过循环每次增加x 25,则应使用+=运算符。

for的最后一个子句就是问题所在。它是
x=+25
。如果我们稍微晃动一下空格,就会发现它与
x=+25
相同。是,每次,
x
都设置为正25。你把
=
+
搞错了。如果您将其替换为
x+=25
,您的问题应该得到解决。

for的最后一条是问题。它是
x=+25
。如果我们稍微晃动一下空格,就会发现它与
x=+25
相同。是,每次,
x
都设置为正25。你把
=
+
搞错了。如果将其替换为
x+=25
,则问题应该得到解决。

平铺类中没有默认构造函数。@progenhard是的,他有。“冻结”?您确定它没有引发异常,可能是
ArrayIndexOutOfBoundsException
?在循环中将x设置为正25。你可能想增加它。@chrylis他永远不会越界,因为他在内部循环中是无限的。他每次都会设置数组的第0个索引,因为我从不递增。平铺类中没有默认构造函数。@progenhard是的,他有。“冻结”?您确定它没有引发异常,可能是
ArrayIndexOutOfBoundsException
?在循环中将x设置为正25。你可能想增加它。@chrylis他永远不会越界,因为他在内部循环中是无限的。他每次都会设置数组的第0个索引,因为我从不递增。你发现我爱你真是太棒了!:DYou还应该知道,即使使用+=运算符,在测试x>1280的循环中,您也永远不会遇到内部条件。您发现这一点非常了不起,我爱您!:DYou还应该知道,即使使用+=操作符,在测试x>1280的循环中,您也永远不会遇到内部条件。
    package net.gfx;

public class TileSet {
    public final int TILES = 627;

    class Tiles {
        int x = 0, y = 0;
        int w = 0, h = 0;
    }

    public Tiles tiles[] = new Tiles[TILES];

    public TileSet() {
        for (int i = 0, y = 0; i < TILES; i++) {
            for (int x = 0; x < 1280; x =+ 25) {
                if (x > 1280) {
                    x = 0;
                    y += 40;
                }

                tiles[i] = new Tiles(); //Program Freezes here
                tiles[i].x = x;
                tiles[i].y = y;
                tiles[i].w = 40;
                tiles[i].h = 40;
            }
        }
    }
}