我要求用戶輸入5個數字,並將其存儲到一個數組,所以我可以發送方法中的值,並從每個數組中減去5個數字。當我使用:C#用戶輸入詮釋數組
for(I=0;I<5;I++) {
int[] val = Console.ReadLine();}
它說我不能將int []轉換爲int。我的編程有點生疏。我也不知道如何將數組值從main發送到方法。
我要求用戶輸入5個數字,並將其存儲到一個數組,所以我可以發送方法中的值,並從每個數組中減去5個數字。當我使用:C#用戶輸入詮釋數組
for(I=0;I<5;I++) {
int[] val = Console.ReadLine();}
它說我不能將int []轉換爲int。我的編程有點生疏。我也不知道如何將數組值從main發送到方法。
您將從控制檯輸入的字符串分配給int數組。這是錯誤的,原因有二:
int
陣列(int[]
)是ints
的集合。int
,需要先解析。這是一個輕微的轉移,但我也不認爲你應該使用一個數組。 C#中的數組功能通常比內置的List<T>
少得多。 (所有的搖滾歌星在here鐘聲)有些人說根本沒有理由使用數組 - 我不會走得那麼遠,但我認爲對於這種用例,只需將項添加到List
比分配5個空格並按索引初始化值。
無論哪種方式,你應該使用int.TryParse()
,不int.Parse()
,因爲你會立即得到一個例外,如果你不檢查,如果用戶輸入是可解析到int
。因此,從用戶採取的字符串示例代碼應該是這樣的:
List<int> userInts = new List<int>();
for (int i = 0; i < 5; i++)
{
string userValue = Console.ReadLine();
int userInt;
if (int.TryParse(userValue, out userInt))
{
userInts.Add(userInt);
}
}
如果您仍想使用磁盤陣列,如果有必要,只需更換List<int> userInts
...與int[] userInts = new int[5];
,並更換userInts.Add(userInt)
與userInts[i] = userInt;
。
您初始化數組第一
int[] val = new int[5];
,然後當你的for循環做:
for (int i=0; i<val.Length; i++)
{
val[i] = int.Parse(Console.ReadLine());
}
提示:從主發送數組值的方法,只是看如何static void main
形成:
static void Main(string[] args)
含義主要被接受的控制檯參數的字符串數組。
你只需要解析string
從控制檯被輸入到int first.You做接受INT:
for(int i=0;i<myArray.Length;i++) {
myArray[i] = int.Parse(Console.ReadLine()); //Int32.Parse(Console.ReadLine()) also works
就像@Furkle說,它總是最好使用TryParse()
它使您能夠執行異常處理。 MSDN上有一個不錯的tutorial。
您需要先在循環前創建數組。在循環中,讀取輸入,將其轉換爲數字,然後通過索引設置適當的數組元素。 – jmcilhinney 2014-10-29 03:22:23