问题:编写一个控制台应用程序,要求用户输入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 }
由于需要输入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 }
最后,在完成的主体代码中,使用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 }
注意:
1. 由于前面两段代码仅限当前类使用,因此将其设为private,而非public.
2. 这三段代码可写在单独的类中,如类名为:Chapter3, 在Program类的Main()方法中即可先实例化Chapter3做如下调用:
1 Chapter3 ex = new Chapter3 (); 2 ex.ConsoleWithMultiplication();