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

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

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

 1         private bool IsNumber(string inputString)
 2         {
 3             bool isNum = true;
 4             for (int i = 0; i < inputString.Length; i++)
 5             {
 6                 if (!Char.IsNumber(inputString[i]))
 7                 {
 8                     isNum = false;
 9                     return isNum;
10                 }
11             }
12             return isNum;
13         }
View Code

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

 1         private int InputString()
 2         {
 3             bool isNum;
 4             string test;
 5             do
 6             {
 7                 Console.WriteLine("Please enter the int num: ");
 8                 test = Console.ReadLine();
 9                 isNum = IsNumber(test);
10             } while (!isNum);
11             int num = Convert.ToInt32(test);
12             return num;
13         }
View Code

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

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

注意:

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

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

1 Chapter3 ex = new Chapter3 ();
2 ex.ConsoleWithMultiplication();            
View Code
作者:Ribbon 出处: http://www.cnblogs.com/Ribbon/ 本文版权归作者和博客园共有,欢迎转载。未经作者同意下,必须在文章页面明显标出原文链接及作者,否则保留追究法律责任的权利。 如果您认为这篇文章还不错或者有所收获,可以点击右下角的【推荐】按钮,因为你的支持是我继续写作,分享的最大动力!
原文地址:https://www.cnblogs.com/Ribbon/p/4485314.html