利用try-catch 和while语句的嵌套判断用户输入是否正确,再自定义TT方法判断输入是否是数字,下面是我做的源码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
namespace tes1
{
class Program
{
//1、 不断要求用户输入一个数字,然后打印这个数字的二倍,当用户输入q的时候程序退出。
static void Main(string[] args)
{
do //第一层循环判断用户是否退出
{
Console.WriteLine("请输入一个数字:");
string _number = Console.ReadLine();//定义整形变量_number接受用户输入的值
TT t = new TT();
bool b = true; //定义bool类型b 判断用户输入类型
while (b)
{
if (t.b(_number))
{
int number = 2 * Convert.ToInt32(_number);//按题目要求,先乘二倍,BUG :用户输入范围在-2^16到2^16-1之间整数超出提示错误
Console.WriteLine("{0}的二倍等于:\n{1}",_number,number);
Console.WriteLine("退出请输入q 点回车键继续重新计算");
b = false;
}
else
{
Console.WriteLine("输入数字含有非数字请重新输入");
_number = Console.ReadLine();
}
}
}
while (Console.ReadLine() != "q");
}
private class TT // 新建类判断用户输入是否为数字
{
public bool b(string s)
{
string pattern = "^[0-9]*$";
Regex rx = new Regex(pattern);
return rx.IsMatch(s);
}
}
}
}
|