C#高手帮忙 不断要求用户输入一个数字,然后打印这个数字的二倍,当用户输入q的时候程序退出

while(true){Console.WriteLine("请输入数字");strings1=Console.ReadLine();if(s1=="q"){return... while (true)
{
Console.WriteLine("请输入数字");
string s1 = Console.ReadLine();
if (s1 == "q")
{
return;
}
else
{
int a1 = Convert.ToInt32(s1);
a1 = a1 * a1;
Console.WriteLine(a1);

}
Console.ReadKey();
我这么写后生成的时候没有问题,当运行的时候就出BUG了。。问题出在哪了?
提示转换Convert.Toint32(s1);有问题
展开
 我来答
网上冲浪玩家
推荐于2017-11-23 · TA获得超过574个赞
知道小有建树答主
回答量:535
采纳率:100%
帮助的人:350万
展开全部
因为你最后Console.ReadKey();是读取键盘输入的值,所以回车键也算做输入内容,格式提示转换错误.
while (true)
{
Console.WriteLine("请输入数字");
string s1 = Console.ReadLine();
int s = 0;
try
{
s = Convert.ToInt32(s1);
if (s1 == "q")
{
Console.WriteLine("操作完毕");
break;
}
else
{
int a1 = Convert.ToInt32(s1);
a1 = a1 * a1;
Console.WriteLine(a1);

}
}
catch(Exception err)
{
Console.WriteLine("请输入数字");
continue;
}
}
dawncoasting
2011-01-14
知道答主
回答量:9
采纳率:0%
帮助的人:0
展开全部
while (true)
{
Console.WriteLine("请输入数字");
string s1 = Console.ReadLine();
if (s1 == "q")
{
return;
}
else
{
int a1 = Convert.ToInt32(s1);
a1 = a1 * a1;
Console.WriteLine(a1);
}
1.去掉Console.ReadKey();
2.这段代码不能接收出“q”以外的其它字符(除数字),否则提示转换错误
可以在接收输入后判断是否是数字避免转换报错
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
mzdongmingzhi
2011-01-14 · 超过14用户采纳过TA的回答
知道答主
回答量:50
采纳率:0%
帮助的人:21.4万
展开全部
楼主什么意思?怎么提这个问题?既然是将string转换成int,可是如果你输入的不是int而是aaa 或者bbb 这个转换怎么可能会成功呢?使用这则表达式进行输入的东西的验证
if (!Regex.IsMatch(s1, @"^[+-]?\d*$"))
{
Console.Write("请输入数字,进行计算!");
}
else
{
int a1 = Convert.ToInt32(s1);
a1 = a1 * a1;
Console.WriteLine(a1);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式