如何在Java的for循环中输出星号?现有代码需从输出数字修改
问题:将数字输出的Java代码修改为星号图案输出
需要实现的星号图案为每行依次递增一个星号(例如输入3时,输出:
*
),但当前代码输出的是数字,修改方法如下:
原代码
System.out.println("Enter your number"); int num = scanner.nextInt(); int count = 1; for(int i = 1; i <= num; i++) { for(int j = 1; j <= 1; j++) { for(int k = 1; k <= count; k++) { System.out.print(k + " "); } System.out.println(); count++; } }
修改方案
- 替换输出内容:把输出数字的语句
System.out.print(k + " ");改成System.out.print("* ");,我们不需要输出数字,只需要重复输出星号即可。 - 移除冗余循环:原代码中
for(int j = 1; j <= 1; j++)这个循环完全多余,它仅执行一次,删掉后能简化代码结构。
修改后的完整代码
import java.util.Scanner; public class StarPattern { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.println("Enter your number"); int num = scanner.nextInt(); int count = 1; for(int i = 1; i <= num; i++) { for(int k = 1; k <= count; k++) { System.out.print("* "); } System.out.println(); count++; } scanner.close(); } }
还可以进一步优化,去掉count变量,直接用外层循环的i控制每行星号数量,代码更简洁:
import java.util.Scanner; public class StarPattern { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.println("Enter your number"); int num = scanner.nextInt(); for(int i = 1; i <= num; i++) { for(int k = 1; k <= i; k++) { System.out.print("* "); } System.out.println(); } scanner.close(); } }
内容的提问来源于stack exchange,提问作者pishuu
相关产品推荐
相关产品推荐

