我正在编写一个绘制线性和二次函数的java程序。到目前为止,我所做的一切都是制作主要功能的轴。这是我的代码:
int yMax = 5;
int yMin = -5;
int xMax = 5;
int xMin = -5;
for(int j=yMax; j>=yMin; j--)
{
for(int i=xMin; i<=xMax; i++)
{
if(j==5 && i==0)
{
System.out.print("^");
}
else if(i==5 && j==0)
{
System.out.print(">");
}
else if(i==0 & j==0)
{
System.out.print(".");
}
else if(j==0)
{
System.out.print("-");
}
else if(i==0)
{
System.out.print("|");
}
else
{
System.out.print(" ");
}
}
System.out.println();
}
代码工作正常,轴完美绘制。唯一的事情是我需要使用一个接受两个int值(i和j)并返回一个字符串(要绘制的字符)的方法来做这个,这就是我不知道该怎么做。 任何帮助将不胜感激。
答案 0 :(得分:0)
int yMax = 5;
int yMin = -5;
int xMax = 5;
int xMin = -5;
String result = ""; // returns string (character to be drawn)
for (int j = yMax; j >= yMin; j--) {
for (int i = xMin; i <= xMax; i++) {
if (j == 5 && i == 0) {
result += "^";
} else if (i == 5 && j == 0) {
result += ">";
} else if (i == 0 & j == 0) {
result += ".";
} else if (j == 0) {
result += "-";
} else if (i == 0) {
result += "|";
} else {
result += " ";
}
}
result += "\n";
}
答案 1 :(得分:0)
只需在方法中捕获逻辑,然后用System.out.println()
语句替换return
次调用。由于return
语句停止执行该方法,因此您可以删除else
分支:
public String getCharacter(int i, int j) {
if(j==5 && i==0) return "^";
if(i==5 && j==0) return ">";
if(i==0 && j==0) return ".";
if(j==0) return "-";
if(i==0) return "|";
return " ";
}
您的主要计划将是:
int yMax = 5;
int yMin = -5;
int xMax = 5;
int xMin = -5;
for(int j=yMax; j>=yMin; j--)
{
for(int i=xMin; i<=xMax; i++)
{
System.out.print(getCharacter(i, j));
}
System.out.println();
}
以上也可以作为嵌套的三元运算符来完成:
public String getCharacter(int i, int j) {
return j==5 && i==0 ? "^"
: i==5 && j==0 ? ">"
: i==0 && j==0 ? "."
: j==0 ? "-"
: i==0 ? "|"
: " ";
}
不幸的是,大多数Java格式化程序都不会保留这种漂亮的布局,并且会使语句变得难以理解。