You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何正确编写Java循环实现指定次数打印用户名?

问题分析与修复方案

核心问题

  • 覆盖用户输入的次数变量:你的for循环开头直接给n赋值为1,把用户之前输入的打印次数完全覆盖了,导致输入的数值根本没起到作用。
  • 循环条件写死,忽略用户需求:循环条件固定为n < 20,不管用户输入多少次,都会循环到19次,完全不符合“按输入次数打印”的要求。

修复后的代码

import java.util.Scanner;

public class MoreTesting {

    public static void main(String[] args) {

        Scanner keyboard = new Scanner(System.in);

        int n;
        String name;

        System.out.println("What is your name?");
        name = keyboard.next();

        System.out.println("How many times do you want to print " +
                           "your name? Enter the value 1-20");
        n = keyboard.nextInt();

        // 用独立变量i做循环计数器,避免覆盖用户输入的n
        // 严格按照需求:从0到n的循环,共打印n+1次
        for (int i = 0; i <= n; i++) {
            System.out.println(name);
        }

        // 如果实际需要打印n次(和输入次数一致),替换成下面的循环:
        // for (int i = 0; i < n; i++) {
        //     System.out.println(name);
        // }
    }
}

关键修改点说明

  1. 用独立循环变量:新增int i作为循环计数器,不再修改用户输入的n,保证输入的次数值能被正确使用。
  2. 匹配需求的循环范围:
    • 要是严格遵循“创建从0到n的for循环”的要求,用i <= n,这样会打印n+1次(i从0到n,共n+1个循环值)。
    • 要是实际需要打印的次数和用户输入的n完全一致,就把循环条件改成i < n,此时i从0到n-1,刚好循环n次。
  3. 可选的序号调整:原代码里name + n会拼接姓名和变量,要是不需要序号直接输出name就行;要是需要打印序号,改成name + " " + i即可。

内容的提问来源于stack exchange,提问作者Ken

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.29 05:33:23