0

我有几个关于使用嵌套 for 循环的问题。在本书的这个例子中,它使用嵌套的 for 循环来绘制一个典型的棋盘。

1)当我假设下面的代码说绘制棋盘格的顺序将从左到右垂直向下直到绘制整个棋盘时,我的理解是否正确?

2) 我对双 x 的用途和最里面的 for 循环中的双 y 有一些疑问。计算它们的目的是为了将一个正方形与下一个正方形隔开吗?您能否扩展双 x 和双 y 的目的以及一个循环的每个循环会发生什么?

import acm.program.*;
import acm.graphics.*;




public class checkerBoard extends GraphicsProgram{
    public void run(){


        double sqSize = getHeight() / N_ROWS;
        for ( int i = 0; i < N_ROWS; i++){
            for (int j = 0; j < N_COLUMNS; j++){
                double x = j * sqSize;
                double y = i * sqSize;

                GRect rect = new GRect(x, y, sqSize, sqSize);
                rect.setFilled((i+ j) % 2 !=0);
                add(rect);

            }

        }

    }


    private static final int N_ROWS = 8;
    private static final int N_COLUMNS = 8;


}
4

1 回答 1

0

1)当我假设下面的代码说绘制棋盘格的顺序将从左到右垂直向下直到绘制整个棋盘时,我的理解是否正确?

这是对的。一行一行,从左到右,从上到下。

2) 我对双 x 的用途和最里面的 for 循环中的双 y 有一些疑问。计算它们的目的是为了将一个正方形与下一个正方形隔开吗?您能否扩展双 x 和双 y 的目的以及一个循环的每个循环会发生什么?

它们是绘制下一个正方形的位置的坐标。具体来说,它们是正方形左上角的坐标。您可以通过简单地乘以正方形的宽度来计算所有正方形的起点,就像他们所做的那样。

于 2012-11-14T00:48:18.310 回答