C#入门经典第五版之变量与表达式编码题训练

时间:2021-12-30 22:38:28

问题:编写一个控制台应用程序,要求用户输入4个int值,并显示它们的乘积。提示:可以使用Convert.ToDouble()命令,把用户在控制台上输入的数转换为double, 以此类推,转换成int命令为Convert.ToInt32():

由于用户输入可能不为数字,因此首先需要编写一个私有方法用来判断输入是否为数字,这里可以使用正则表达式也可以编写如下代码, 方法为IsNumber(string inputString):

         private bool IsNumber(string inputString)
{
bool isNum = true;
for (int i = ; i < inputString.Length; i++)
{
if (!Char.IsNumber(inputString[i]))
{
isNum = false;
return isNum;
}
}
return isNum;
}

由于需要输入4个值,考虑到重复代码比较多,可以将输入部分单独作为一段私有方法,让其返回int值,方法为InputString():

         private int InputString()
{
bool isNum;
string test;
do
{
Console.WriteLine("Please enter the int num: ");
test = Console.ReadLine();
isNum = IsNumber(test);
} while (!isNum);
int num = Convert.ToInt32(test);
return num;
}

最后,在完成的主体代码中,使用for循环多次调用InputString(), 并将返回的值加入到List<int>中,最终即可完成题目的要求:

         public void ConsoleWithMultiplication()
{
List<int> intNum = new List<int>();
for (int i = ; i < ; i++)
{
intNum.Add(InputString());
}
int mul = intNum[] * intNum[] * intNum[] * intNum[];
Console.WriteLine("{0} * {1} * {2} * {3} = {4}", intNum[], intNum[], intNum[], intNum[], mul);
}

注意:

1. 由于前面两段代码仅限当前类使用,因此将其设为private,而非public.

2. 这三段代码可写在单独的类中,如类名为:Chapter3, 在Program类的Main()方法中即可先实例化Chapter3做如下调用:

 Chapter3 ex = new Chapter3 ();
ex.ConsoleWithMultiplication();