标题:检测输入的字符是否为数字,不知道错在什么地方,求教
取消只看楼主
nevvay
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2011-11-23
结帖率:0
已结贴  问题点数:20 回复次数:6 
检测输入的字符是否为数字,不知道错在什么地方,求教
程序代码:
            double balance;
            bool rightInput=false;
            string temp;
            char[] charArry;
            do
            {
                Console.WriteLine("请输入您现在的存款:");
                temp = Convert.ToString(Console.ReadLine());
                charArry = temp.ToCharArray();
                for (int a = 0; a < charArry.Length; a++)
                {
                    for (int b = 9; b > -1; b--)
                    {
                        if (Convert.ToInt32(charArry[a]) == b) rightInput = true;
                    }
                }
            } while (rightInput == false);
为什么不管我输入的是否为数字,都跳不出这个循环,错在哪了,新手刚学C#,求教……
搜索更多相关主题的帖子: 检测 balance 
2011-12-06 11:29
nevvay
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2011-11-23
得分:0 
谢谢,不过我自己写的那段错在哪……我是想通过把输入的字符转成字符数组,然后把数组中的所有字符依次和0到9比较,只要数组中的所有元素和其中任意一个数字相等,就跳出循环,为什么会一直卡在循环里= =
2011-12-06 12:51
nevvay
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2011-11-23
得分:0 
回复 4楼 wangnannan
新手刚学C#,现在看到语法部分,不理解你说的正则表达式,到时候看看。你能告诉我我自己写的这段错在哪不…谢谢
2011-12-06 13:04
nevvay
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2011-11-23
得分:0 
回复 6楼 wangnannan
该回复已被作者删除

[ 本帖最后由 nevvay 于 2011-12-6 14:32 编辑 ]
2011-12-06 14:29
nevvay
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2011-11-23
得分:0 
回复 10楼 刹影圣星
嗯,我看下,之前前面2个办法我都去试了,不过只要输入非数字字符,都会出现异常中断,刚刚wangnannan版主又更新了新的,我还没试,你的也是刚看到,我理解下,去试一下。
2011-12-06 14:34
nevvay
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2011-11-23
得分:0 
回复 8楼 刹影圣星
根据你的回复,我修改了一下代码,不过还是会有异常
程序代码:
        do
            {
                Console.WriteLine("请输入您现在的存款:");
                temp = Convert.ToString(Console.ReadLine());
                char[] charArry = temp.ToCharArray();
                bool[] isNumber = new bool[charArry.Length];
                for (int a = 0; a < charArry.Length; a++)
                {
                    for (int b = 9; b > -1; b--)
                    {
                        if ((Convert.ToInt32(charArry[a].ToString())) == b) isNumber[a] = true;
                    }
                }
                for (int a = 0; a < isNumber.Length; a++)
                {
                    rightInput = rightInput & isNumber[a];
                }
            } while (rightInput == false);
我现在是把“rightInput”的初始值设成了“true”,并创建了一个布尔数组,用来存输入的每一个字符是否为数字的结果,然后将每一个结果与“rightInput”进行与运算,最终根据“rightInput”是否为真来进行选择接来下的操作,可是还是出现了异常,我又迷惑了,=_=
2011-12-06 15:11
nevvay
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2011-11-23
得分:0 
回复 14楼 刹影圣星
程序代码:
        inPut1:
                try
                {
                   
                    Console.WriteLine("请输入您现在的存款:");

                    balance = double.Parse(Console.ReadLine());
                }
                catch
                {
                    goto inPut1;
                }
用前面的jedypjd的办法已经实现了我要的效果,你的这个办法也可以,不过我还是想知道有没有办法把我那段错误的代码修改到正确,
2011-12-06 15:51



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-357098-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.055170 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved