Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.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 为什么这个循环在paint()方法中不起作用?_Java_Loops_For Loop_Paint - Fatal编程技术网

Java 为什么这个循环在paint()方法中不起作用?

Java 为什么这个循环在paint()方法中不起作用?,java,loops,for-loop,paint,Java,Loops,For Loop,Paint,已调试并发现错误 我试着这样做: public void paint(Graphics g) { for (int i = 0; i < mapWidth; i++) { g.drawRect (0 + i * (windowWidth/mapWidth), 0, windowWidth/mapWidth, windowHeight/mapHeight); } } 它工作得很好?因为在我们的第一个代码中高度为零,请参见以下界

已调试并发现错误

我试着这样做:

public void paint(Graphics g) {
        for (int i = 0; i < mapWidth; i++) {
                g.drawRect (0 + i * (windowWidth/mapWidth), 0, windowWidth/mapWidth, windowHeight/mapHeight);
        }
}

它工作得很好?

因为在我们的第一个代码中高度为零,请参见以下界面:


因为在我们的第一个代码中高度为零,请参见以下界面:


这可能看起来很简单,但很多时候,bug往往是微不足道的

您是否检查过您的变量是否会导致值>0,即

windowWidth/mapWidth   
//This would be 0 if mapWidth > windowWidth assuming both are ints.
其次,在我看来,你使用了两个变量来表示同一件事:

getMapWidth  //Should this be a method?
mapWidth

使用两个变量不是错误。但是,您可能在这两个变量中的一个变量中设置了错误的值。

这似乎很容易,但通常情况下,错误往往是微不足道的

您是否检查过您的变量是否会导致值>0,即

windowWidth/mapWidth   
//This would be 0 if mapWidth > windowWidth assuming both are ints.
其次,在我看来,你使用了两个变量来表示同一件事:

getMapWidth  //Should this be a method?
mapWidth

使用两个变量不是错误。但是,您可能在两个变量中的一个变量中设置了错误的值。

在尝试执行循环时,您可以调试并查看这些值是什么吗?当然可以。。我怎么可能没有想到这一点:/n当您尝试执行循环时,您能调试并查看值是什么吗?当然。。我怎么可能没有想到:/@user2483938:oops,那么你可能应该通过查看存储在变量中的值来解决问题…这不在我的代码中-我们将以SSCCE的形式发布你的真实代码,这样我们就不会浪费时间猜测你的真实代码是什么。不,常量零是它的起源value@user2483938:哎呀,然后你可能应该通过查看存储在变量中的值来解决问题…这不在我的代码中-好吧,以SSCCE的形式发布你的真实代码,这样我们就不会浪费时间猜测你的真实代码是什么。不,常数零I它的原点y值是的,当我尝试制作SSCCE时,这也是一个输入错误…-\u-但是,是的,基本上就是这样。是的,当我试着做一个sscce时,那也是一个打字错误但基本上就是这样