【问题标题】:Drawing X and Y axis using loops and strings使用循环和字符串绘制 X 和 Y 轴
【发布时间】:2014-10-03 23:38:30
【问题描述】:

我有这个非常具体的编程任务。我只需要使用循环和 if else 语句来绘制 x 和 y 轴,并且它所在的方法只能返回字符串,可以是轴字符(如 |),也可以是空字符串“”。我几乎是正确的,但我不明白为什么 y 轴不在 x==0 处打印,而是在 x== -10 处打印。我很想知道如何解决这个问题,我相信这是我忽略的一些小问题。它确实有效,我返回“”而不是“”,但我不允许这样做。谢谢!

public class Try1 {
public static void main(String[] args) {

  int height = 10;
  int width = 10; 

  for (int y = height; y >= -10; y--){
   for (int x = -10 ; x <= width; x++){
     DrawAxis(x,y);
     System.out.print(DrawAxis (x,y));

   }
   System.out.print("\n");
  }

}




 public static String DrawAxis(int x, int y)
 {
   if (x == 10 && y == 0)
      return ">";
   else 
     if (x == 0 && y == 10)
      return "^";
   else 
     if (x == 0 && y == 0)
       return ".";
   else 
      if (x == 0 && y >= -10)
        return "|";
   else
     if ( x >= -10 && y == 0)
      return "-";

return "";}
 }

【问题讨论】:

  • 你到底想画什么形状?
  • 我正在尝试在 20 x 20 空间的中间绘制两条轴线(如十字)。

标签: java loops if-statement nested-loops


【解决方案1】:

它开始在 -10 处打印 x,因为您在第二个 for 循环中将“x”变量初始化为 -10。

此外,在命名方法和变量时使用驼峰命名法是惯例,因此您应该将方法从“DrawAxis”重命名为“drawAxis”,以提高可读性。

【讨论】:

  • 方法是老师指定的,我改不了。。。不过我也觉得是这样!
  • 我把宽度和高度改为20,所以中间现在是(10,0),但它仍然以相同的方式打印。你能解释一下它为什么这样做吗?
  • 第二个for循环中x的起始值你改了吗?
【解决方案2】:

如果 (x == 0 && y >= -10) return "在符号前使用很多空格:|"; 编译运行,看看|的位置,然后根据需要加空格或减空格,(一点点要求,请在帖子中提示直线和抛物线部分,不胜感激)抛物线与直线相交的地方.

【讨论】:

    【解决方案3】:

    我终于想通了,我用空格代替了 main 方法中的空字符串返回,现在它工作得非常好!感谢您的所有帮助!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-10-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-22
      • 2012-06-08
      相关资源
      最近更新 更多