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

新手求助:如何在for循环中按序号询问并存储客户姓名

解决for循环中显示客户编号并读取姓名的问题

嘿,我来帮你搞定这个编程小问题!你的代码里有几个关键的小错误,咱们一步步修正:

你的代码里的核心问题

  • 循环条件完全错误:你写的for (int i = 1; i == arraySize; i++)只会在i刚好等于arraySize时执行一次,但i初始值是1,除非arraySize也是1,否则这个循环根本不会运行。正确的条件应该是让i从1一直走到arraySize,也就是i <= arraySize。
  • 客户编号显示错误:你打印的是arraySize,这会导致不管循环多少次,都显示同一个数字(比如数组长度是3的话,一直显示customer#3),应该用循环变量i来对应递增的编号。
  • 缺少输入读取逻辑:你只输出了提示,但没把用户输入的姓名存到数组里,等于白问啦~

修正后的完整代码

import java.util.Scanner;

public class CustomerInput {
    public static void main(String[] args) {
        int arraySize = 3; // 这里可以换成你需要的任意数组大小
        String[] dinerArray = new String[arraySize];
        Scanner scanner = new Scanner(System.in);

        // 从1开始循环,覆盖所有客户编号
        for (int i = 1; i <= arraySize; i++) {
            System.out.println("Enter the name of customer #" + i + ": ");
            // 数组索引从0开始,所以用i-1对应正确的存储位置
            dinerArray[i - 1] = scanner.nextLine();
        }

        // 验证输入结果(可选)
        System.out.println("\n你输入的客户名单:");
        for (int i = 0; i < dinerArray.length; i++) {
            System.out.println("Customer #" + (i + 1) + ": " + dinerArray[i]);
        }

        scanner.close();
    }
}

额外说明:另一种常用的循环写法

很多Java开发者习惯从0开始写循环(因为数组索引本身是0起始的),这种写法不需要i-1,只需要显示编号的时候加1就行:

for (int i = 0; i < arraySize; i++) {
    System.out.println("Enter the name of customer #" + (i + 1) + ": ");
    dinerArray[i] = scanner.nextLine();
}

两种写法都能达到你的需求,选你觉得顺手的就行~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 07:29:32