目前尚不清楚你的意圖是什麼,但它看起來像你可能試圖給數組添加數字。此代碼將分析字符串分配給數組中不爲零的第一項。
private void addBtn_Click(object sender, EventArgs e)
{
int i = 0;
for (; i < nums.Length; i++)
{
if (nums[i] == 0)
{
nums[i] = int.Parse(inputText.Text);
break;
}
}
MessageBox.Show(nums[i].ToString());
}
但是,這將是一個更好的辦法,因爲用戶可以鍵入「0」:
private int _lastUsedIndex = -1;
private void addBtn_Click(object sender, EventArgs e)
{
var number = int.Parse(inputText.Text);
// Increment by one
++_lastUsedIndex;
nums[_lastUsedIndex] = number;
MessageBox.Show(number.ToString());
}
但儘管如此,數組是不是一個好主意:當你添加它們不能生長的東西。首先他們比你需要的大,然後他們突然變得太小,你就會崩潰。我們現在有更好的選擇。除非您的老師堅持您必須使用陣列,否則請使用List<int>
。在這個版本中,我們還將使用不同的方式來解析數字,如果用戶鍵入「LOLWUT?!?!」,則該數字不會崩潰。而不是一個數字:
private List<int> nums = new List<int>();
private void addBtn_Click(object sender, EventArgs e)
{
int number;
if (int.TryParse(inputText.Text, out number))
{
nums.Add(number);
MessageBox.Show(number.ToString());
}
else
{
MessageBox.Show(inputText.Text + " isn't a number, smart guy.");
}
}
'int.Parse(inputText.Text)'被分配給數組的0和1,所以當然他們沒有區別。你是不是想把'i'分配給元素0? – Plutonix
如果我明白你想要的是什麼,你需要在課堂上有一個新字段來跟蹤最後使用的索引。然後你可以做'nums [lastIndex] = ...; lastIndex的++'。或者當然,使用'List'。 –
你是不是故意使用'else if(nums [1] == 0)'而不是'if',這樣兩個位置不會同時更新? – MisterMystery