如何在Java三角形打印程序中添加输入校验及错误退出逻辑?
解决Java三角形输入验证的问题
嘿,这事儿不难!咱们可以在获取用户输入之后立刻加个判断逻辑,确保输入的行数符合要求,而且完全不会影响原来打印三角形的代码逻辑。下面是完整的实现代码,我再给你拆解说明:
import java.util.Scanner; public class Triangle { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); // 获取用户输入的行数 System.out.print("请输入三角形的行数:"); int rows = scanner.nextInt(); // 输入验证:行数小于1时输出错误并退出 if (rows < 1) { System.out.println("错误:行数必须大于等于1!"); scanner.close(); System.exit(1); // 终止程序,不会执行后面的打印逻辑 } // 原有打印居中三角形的逻辑,完全保留不动 for (int i = 1; i <= rows; i++) { // 打印前置空格实现居中 for (int j = rows - i; j > 0; j--) { System.out.print(" "); } // 打印星号 for (int k = 1; k <= 2 * i - 1; k++) { System.out.print("*"); } // 换行 System.out.println(); } scanner.close(); } }
关键说明:
- 输入验证逻辑:在获取到用户输入的
rows之后,立刻判断是否小于1。如果是,就输出错误提示,然后调用System.exit(1)退出程序——这样后面的三角形打印代码根本不会执行,完美保留了原有逻辑的独立性。 - 资源释放:退出前别忘了关闭
Scanner,养成良好的资源管理习惯。 - 原有逻辑完全保留:打印三角形的双层循环代码一点都没改,完全符合你“不破坏原有程序逻辑”的要求。
测试一下:
- 输入
5:正常打印5行的居中三角形; - 输入
0或者-3:立刻输出错误信息并退出,不会执行打印操作。
内容的提问来源于stack exchange,提问作者user9421523
相关产品推荐
相关产品推荐

