我发现此代码用于从用户输入中查找最小和最大数字。
using System;
class FindMinAndMaximalNumber
{
static void Main()
{
string[] numbers;
bool isInteger=true;
int minimal=int.MaxValue;
int maximal=int.MinValue;
Console.Write("Enter a sequence of numbers delimited with \",\":");
numbers = (Console.ReadLine()).Split(',');
int[] intNumbers=new int[numbers.Length];
for (int i = 0; i < (numbers.Length); i++)
{
isInteger = int.TryParse(numbers[i], out intNumbers[i]);
if (isInteger==false)
{
break;
}
}
if (isInteger)
{
for (int i = 0; i < numbers.Length; i++)
{
if (intNumbers[i] < minimal)
{
minimal = intNumbers[i];
}
if (intNumbers[i] > maximal)
{
maximal = intNumbers[i];
}
}
Console.WriteLine("minimal={0}",minimal);
Console.WriteLine("maximal={0}",maximal);
}
else
{
Console.WriteLine("Not a valid entry! Some of the entries are not integer!");
}
}
}
我的问题是:
1 - 以下代码声明数组intNumbers
的大小是否等于Array的大小#34; number&#34;
int[] intNumbers=new int[numbers.Length];
是或否?
2 - 检查此TryParse
方法....
isInteger = int.TryParse(numbers[i], out intNumbers[i]);
如果IsInteger
为真,那么它是否意味着...存储了i的值
intNumbers[i]
... ????
或者任何人都可以解释这段代码
答案 0 :(得分:0)
是。 datatype[] arrayName = new datatype[length];
方法int.TryParse()
将数字的字符串表示形式转换为等效的32位有符号整数。返回值表示转换是否成功。在这种情况下,TryParse
将检查数组的每个元素&#34;数字&#34;如果它是int
数据类型,那么它会将值存储到其他数组。这样做是为了防止输入非数值。
因此,如果IsInteger
为真,则表示您输入的所有值均为数字
答案 1 :(得分:0)
非常感谢SimpleVar 并且非常感谢MegaTron 您的帮助。 最后一点澄清 。这意味着以下代码“仅”声明名为“intNumbers”的新数组的大小
int [] intNumbers = new int [numbers.Length];
但 这些代码(以及for循环)
将这些项存储在这个新数组“intNumbers”中isInteger = int.TryParse(numbers [i],out intNumbers [i]);
每次执行true和for循环