【问题标题】:Drawing a half arrow using loops in Java在 Java 中使用循环绘制半箭头
【发布时间】:2022-03-19 00:01:50
【问题描述】:

我正在尝试在 Java 中绘制一个半箭头,并在运行代码时不断收到相同的错误。我不确定我做错了什么,任何帮助都会很棒。

说明:该程序输出一个由矩形和直角三角形组成的向下箭头。箭头尺寸由用户指定的箭头底高、箭头底宽和箭头头宽定义。

(1) 修改给定程序以使用循环输出高度为arrowBaseHeight 的箭头底部。 (1 分)

(2) 修改给定程序以使用循环输出宽度为arrowBaseWidth 的箭头底。使用嵌套循环,其中内循环绘制 *,外循环迭代次数等于箭头底部的高度。 (1 分)

(3) 修改给定程序以使用循环输出宽度为arrowHeadWidth 的箭头。使用嵌套循环,其中内循环绘制 *,外循环迭代次数等于箭头高度。 (2 分)

(4) 修改给定程序以仅接受大于箭头底宽的箭头头宽度。使用循环继续提示用户输入箭头宽度,直到该值大于箭头底宽。 (1 分)

arrowBaseHeight = 5、arrowBaseWidth = 2 和 arrowHeadWidth = 4 的示例输出:

输入箭头基高:5 输入箭头底宽:2 输入箭头宽度:4 ** ** ** ** **



** * 我的代码:

import java.util.Scanner;

public class DrawHalfArrow {
    public static void main(String[] args) {
        Scanner scnr = new Scanner(System.in);
        int arrowBaseHeight;
        int arrowBaseWidth;
        int arrowHeadWidth;

        System.out.print("Enter arrow base height: ");
        arrowBaseHeight = scnr.nextInt();

        System.out.print("Enter arrow base width: ");
        arrowBaseWidth = scnr.nextInt();

        System.out.print("Enter arrow head width: ");
        arrowHeadWidth = scnr.nextInt();
        while (arrowHeadWidth <= arrowBaseWidth) {
            System.out.print("Enter arrow head width: ");
            arrowHeadWidth = scnr.nextInt();
        }

        System.out.println();
        for (int i = 0; i < arrowBaseHeight; i++) {
            for (int j = 0; j < arrowBaseWidth; j++) {
                System.out.print("*");
            }
            System.out.println();
        }

        for (int i = arrowHeadWidth; i > 0; i--) {
            for (int j = 0; j < i; j++) {
                System.out.print("*");
        }
        System.out.println();
    }
}

}

【问题讨论】:

  • 我正在尝试在 Java 中绘制一个半箭头,并在运行代码时不断收到相同的错误。 什么错误?
  • 欢迎来到 Stack Overflow!请通过确切解释您尝试运行代码时发生的情况来帮助我们帮助您(例如,如果发生错误,请复制并粘贴 complete 错误消息,格式为代码) 以及这与您期望发生的情况有何不同。与我们在此处看不到的“给定程序”相比,它还有助于指出您在此代码中的更改位置。

标签: java loops


【解决方案1】:

您只是在“:”之间遇到了一些打印行问题和其他空白问题

import java.util.Scanner; 

public class DrawHalfArrow {
   public static void main(String[] args) {
      Scanner scnr = new Scanner(System.in);
     int arrowBaseHeight;
      int arrowBaseWidth;
      int arrowHeadWidth;


      System.out.println("Enter arrow base height:");
    
      arrowBaseHeight = scnr.nextInt();

      System.out.println("Enter arrow base width:");
 
      arrowBaseWidth = scnr.nextInt();

      System.out.println("Enter arrow head width:");
   
      arrowHeadWidth = scnr.nextInt();
  
      while (arrowHeadWidth <= arrowBaseWidth) {
          System.out.println("Enter arrow head width:");
          arrowHeadWidth = scnr.nextInt();
      }

      System.out.println();
      for (int i = 0; i < arrowBaseHeight; i++) {
          for (int j = 0; j < arrowBaseWidth; j++) {
              System.out.print("*");
          }
          System.out.println();
      }

      for (int i = arrowHeadWidth; i > 0; i--) {
          for (int j = 0; j < i; j++) {
              System.out.print("*");
          } 
          System.out.println();
      }
   }
}

【讨论】:

    【解决方案2】:

    您的代码似乎运行良好(这是在代码运行器上运行的:https://code.sololearn.com/c6Ww6ZpVv6vI/#java),您遇到了什么错误?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-03
      • 2021-04-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多