C#活用ReadKey()

C#题目:要定义一个数组存用户输入的数据,但是数组的长度是由用户输入数据的多少决定的,而且输入0表示结束。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Text.RegularExpressions;
using System.Collections;

namespace work
{
    class Program
    {
        static void Main(string[] args)
        {
            ArrayList str_Array = new ArrayList();
            int num = 0;

            //之所以用ReadKey()而不用ReadLine(),是因为我想:
            //一旦输入字符0,马上结束输入并输出数组,而ReadLine只有在按下回车之后才可以输出数组
            //区别在于这个方法比用ReadLine的可以少输入一个回车,
            //同时也避免了  键入0后还可以继续输入字符  这种不合逻辑的情况的发生
            while(true)
            {
                char char_temp = Console.ReadKey().KeyChar;
                if(char_temp>='1'&&char_temp<='9')
                {
                    num = num * 10 + char_temp - '0';     //检测到输入的是1-9的字符,则将其转化为对应的整数
                }
                else if (char_temp == '0')
                {
                    break;
                }
                else if ( (char_temp == ' '||char_temp == ',') && num!=0)
                    //如果输入了空格或逗号,并且num不等于0,
                    //表示上一个数组元素已经输入结束了。
                {
                    str_Array.Add(num);
                    num = 0;
                }
                
            }
            Console.WriteLine();
            for (int i = 0;i<str_Array.Count;i++)
            {
                Console.WriteLine("第{0}个元素的值为:{1}", i + 1, str_Array[i]);
            }
            


            Console.ReadKey();
        }
        

    }
}


评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值