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时,那也是一个打字错误但基本上就是这样