使用方法编写图形程序

时间:2014-10-05 05:46:00

标签: java function methods graph

我正在编写一个绘制线性和二次函数的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)并返回一个字符串(要绘制的字符)的方法来做这个,这就是我不知道该怎么做。 任何帮助将不胜感激。

2 个答案:

答案 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格式化程序都不会保留这种漂亮的布局,并且会使语句变得难以理解。