如何将 Console.ReadLine 中的值添加到数组中?

Posted

技术标签:

【中文标题】如何将 Console.ReadLine 中的值添加到数组中?【英文标题】:How do i add a value from a Console.ReadLine into an array? 【发布时间】:2021-12-27 05:30:17 【问题描述】:

我想从用户那里读取一个浮点值并将该值存储在一个数组中,这样我就可以将它全部添加并除以用户给我的输入量,一旦他们输入了一个值低于 0.

using System;

class Program 
  public static void Main (string[] args) 

 float [] tt;
    
 int ct = 0;
 for (int i = 0; i>-1; i++); 

   float id = float.Parse(Console.ReadLine());


   if (id > -1) 
     ct++;
    else 
     Console.WriteLine(id/ct);
   


    
  

【问题讨论】:

您的 for 循环将无限执行。 for loop 的正确退出条件是什么 类似***.com/questions/23040525/… 【参考方案1】:
using System;

class Program

    public static void Main(string[] args)
    
        float sum = 0;
        int ct = 0;

        while (true)
        
            float id = float.Parse(Console.ReadLine());

            if (id > -1)
            
                sum += id;
                ct++;
            
            else
            
                Console.WriteLine(sum / ct);
                break;
            
        

        Console.ReadKey();
    

更好的代码写如下,这里增加了更多的检查:

using System;
using System.Collections.Generic;
using System.Linq;

class Program

    public static void Main(string[] args)
    
        var list = new List<double>();
        while (true)
        
            var line = Console.ReadLine();
            if (!double.TryParse(line, out var number))
            
                Console.WriteLine($"Can't parse number: line");
                return;
            

            if (number < 0)
            
                break;
            

            list.Add(number);
        

        Console.WriteLine("The average is: " + list.Average());
        Console.ReadKey();
    

【讨论】:

是的,我已经构建并测试了代码。循环永远不会停止。我在这里遇到了一个问题。尽量不要改代码,让提问的人更容易理解,或者用最好的写法…… List 平均就够了,不过我觉得还不够他/她已经学习了 LINQ。 好的,我已经更新了答案...现在当用户输入负数(

以上是关于如何将 Console.ReadLine 中的值添加到数组中?的主要内容,如果未能解决你的问题,请参考以下文章

相当于 c++ 中的 Console.ReadLine()

如何向 Console.ReadLine() 添加超时?

重载 Console.ReadLine 可能吗? (或任何静态类方法)

如何在简单计算器中将Console.ReadLine()转换为两倍?问题C#,例外情况

2016 1011随笔

Console.Read() 和 Console.ReadLine() 之间的区别?