我目前还在学习java,所以这可能只是一个业余错误
意图是'for'循环会在条形图上绘制一个'Bars'数组,给出不同的高度(对于格式不佳的道歉)
static int[]cwMarks = new int[4];
static int[]examMarks = new int[4];
static int barWidth = 4; //Standard bar width
private static int posX = -15; //Decides X position of bar
private static int posY= 210; //Decides Y position of bar
static int barCount = 8; //Tracks number of bars needing to be drawn
static Bar[] barArr = new Bar[barCount]; //Array storing Bars
cwMarks[0]=50;
cwMarks[1]=100;
cwMarks[2]=20;
cwMarks[3]=100;
examMarks[0]=50;
examMarks[1]=100;
examMarks[2]= 20;
examMarks[3]= 30;
draw();
public static void draw()
{
for (int i=0,j=0;i<barCount;j++) //i represents the element of barArr, j represents element of cwMarks/examMarks
{
barArr[i].moveHorizontal(posX);
barArr[i].changeSize(barWidth, cwMarks[j]);
barArr[i].moveVertical(posY-cwMarks[j]);
barArr[i].makeVisible();
i++;
barArr[i].moveHorizontal(posX+barWidth+1);
barArr[i].changeSize(barWidth, examMarks[j]);
barArr[i].moveVertical(posY-examMarks[j]);
barArr[i].makeVisible();
i++;
posX=+5;
}
}
`
我认为这会产生4对2条,但是循环似乎只执行它的代码两次(产生2对2)。这就是:
关于这是为什么的任何想法?
答案 0 :(得分:1)
(int i=0,j=0;i<barCount;j++)
看看吧。 J ++?
不应该是:
for (int i=0;i<barCount;i++)
答案 1 :(得分:1)
将posX=+5
更改为posX+=10
(或posX+=15
,具体取决于您希望的外观。您的代码有2个错误:
答案 2 :(得分:0)
难怪你得到很多没有答案的观点。我也说不出来。这里有几个提示。
将代码放在方法中,而不是将所有内容都设置为静态。如果没有别的,请尝试public void run(){}。在main中创建一个实例并调用run。
不要在循环外更新for循环中的变量。在一个更大的循环中,这将是令人困惑的。
尝试使用两个for循环而不是现在的kloogie。
通过删除图形代码并使用有意义的消息执行System.out.println()来测试循环逻辑。