目前,我正在尝试创建一个在15x15象限I(坐标平面)网格中的任意位置绘制正方形的程序。我坚持试图让轴正确显示。
这是我到目前为止的代码:
import java.util.Scanner;
public class Question2square {
public static void main(String[] args) {
// Axis variables
int yAxismin = 0;
int yAxismax = 15;
int xAxismin = 0;
int xAxismax = 15;
//Loop through all coordinates on plane using for loops
for(int y = yAxismin; y <= yAxismax; y++)
{
for(int x = xAxismin; x <= xAxismax; x++)
{
//Draw the axis
if (!Axis(x,y).equals("")) {
System.out.print(Axis (x,y));
}
}
System.out.println("");
}
}
// This method draws the 15x15 axis
public static String Axis(int x, int y)
{
// Each if and else if statement dictates what symbol needs to go where for the axes
// If there is nothing to be drawn, there will simply be a blank space
if (x == 15 && y== 0) return ">";
else if(x == 0 && y == 15) return "^";
else if (x == 0 && y == 0 )return ".";
else if(x == 0 && y >= 0) return "|";
else if(x >= 0 && y==0) return "-";
else return "";
}
/*
// Method to be used to draw actual square
public static ... drawSquare(...) {
}
*/
}
不幸的是,它不是绘制我想要的'L'形轴,而是显示'r'形状。我正在试图弄清楚如何正确显示轴。
我试过翻转for循环,但这没有帮助。我不知道还有什么可以抑制这一点。
答案 0 :(得分:2)
尝试撤消y
循环:
for(int y = yAxismax; y >= yAxismin; y--) ...
当你的循环从&#34;从上到下打印到控制台的线条&#34;然后&#34;从左到右&#34;,您希望y
的最大价值优先,x
的最小价值优先。因此,您只需要反转y
循环即可从yAxismax
转到yAxismin
。结果(对于3
而非15
的限制是:
^ | | .-->