【发布时间】: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 错误消息,格式为代码) 以及这与您期望发生的情况有何不同。与我们在此处看不到的“给定程序”相比,它还有助于指出您在此代码中的更改位置。