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

C#如何在for循环中存储用户输入的多条数据

代码调整方案

核心逻辑:在循环外部预先定义存储用的集合,每次循环读取用户输入、判断完类型后,直接将已经读取到的数值存入对应集合即可,不需要在判断分支重复调用Console.ReadLine()要求用户二次输入。

调整后的完整参考代码

using System.Collections.Generic; // 需要先引入该命名空间使用List集合

// 循环外部提前声明存储容器,避免每次循环被销毁
List<int> primeNumbers = new List<int>(); // 存储所有判定为质数的输入值
List<int> compositeNumbers = new List<int>(); // 存储所有判定为合数的输入值

// 此处INum为你预先定义的需要输入的数值总个数
for (int i = 0; i < INum; i++)
{
    Console.Write("{0} Number: ", i);
    int Vnum = int.Parse(Console.ReadLine());

    int a, b = 0, c = 0;

    b = Vnum / 2;
    for (a = 2; a <= b; a++)
    {
        if (Vnum % a == 0)
        {
            Console.WriteLine("Composite");
            compositeNumbers.Add(Vnum); // 直接存入当前输入值到合数集合
            c = 1;
            break;
        }
    }
    if (c == 0)
    {
        Console.WriteLine("Prime");
        primeNumbers.Add(Vnum); // 直接存入当前输入值到质数集合
    }
}

// 后续需要使用存储的数据时直接操作对应集合即可,示例:打印所有输入的质数
Console.WriteLine("所有输入的质数:");
foreach (var num in primeNumbers)
{
    Console.Write(num + " ");
}

关键改动说明

  • 存储容器必须声明在循环外部:如果定义在循环内部,每次迭代结束后变量就会被销毁,无法留存之前输入的所有数据
  • 删除了判断分支中多余的输入读取逻辑:你已经在循环开头通过int Vnum = int.Parse(Console.ReadLine());拿到了当前用户输入的数值,直接存储该变量值即可,不需要重复调用读取输入的方法要求用户二次输入
  • 如果不需要区分质数合数仅存储所有输入值,额外声明一个List<int> allInputNumbers = new List<int>();,在读取到Vnum后直接调用allInputNumbers.Add(Vnum)即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 01:45:05