我試圖設計一個計算一個句子中元音的程序。使用開關計數元音
在我的代碼中,我使用了foreach
語句和if/else if
語句。我想使用switch
聲明 轉換這些代碼行,但我不確定要去哪裏。我需要添加一個新的方法嗎?我很感謝你的幫助。
這是我到目前爲止所嘗試的:我檢查了這一個是非常錯誤的。例如case 1
需要有一個常數。我不確定在這裏使用什麼常數。
foreach (char v in yourSentence)
{
switch (v)
{
case 1:
(v==ch1);
counta++;
j++;
break;
case 2:
(v==ch2);
counte++;
j++;
break;
case 3:
(v==ch3);
counti++;
j++;
break;
case 4:
(v==ch4);
counto++;
j++;
break;
case 5:
(v==ch3);
counti++;
j++;
break;
}
}
另一個問題:我試圖改變列表框中顯示文本的顏色。有可能有不同的顏色嗎?我在這裏也嘗試過的第一個5(listBox1.Items.Add
)是紫羅蘭色的。 (listBox1.Items.Add
)的總和是藍色的。但它似乎沒有改變。我在這裏錯過了什麼嗎?
private void btnCount_Click(object sender, EventArgs e)
{
string yourSentence;
yourSentence = textBoxVowels.Text.ToLower().Trim();
char ch1 = 'a';
char ch2 = 'e';
char ch3 = 'i';
char ch4 = 'o';
char ch5 = 'u';
int counta = 0;
int counte = 0;
int counti = 0;
int counto = 0;
int countu = 0;
int j = counta + counte + counti + counto + countu;
foreach (char v in yourSentence)
{
if (v == ch1) { counta++; j++; }
else if (v == ch2) { counte++; j++; }
else if (v == ch3) { counti++; j++; }
else if (v == ch4) { counto++; j++; }
else if (v == ch5) { countu++; j++; }
}
listBox1.Items.Add("There are " + counta.ToString().Trim() + " a's in the sentence");
listBox1.Items.Add("There are " + counte.ToString().Trim() + " e's in the sentence");
listBox1.Items.Add("There are " + counti.ToString().Trim() + " i's in the sentence");
listBox1.Items.Add("There are " + counto.ToString().Trim() + " o's in the sentence");
listBox1.Items.Add("There are " + countu.ToString().Trim() + " u's in the sentence");
listBox1.Font = new Font("Arial", 12, FontStyle.Bold);
listBox1.ForeColor = Color.Violet;
listBox1.Items.Add("There are " + j.ToString().Trim() + " vowels in the sentence");
listBox1.ForeColor = Color.Blue;
}
private void btnClear_Click(object sender, EventArgs e)
{
textBoxVowels.Text = null;
listBox1.Items.Clear();
}
我認爲Noldorin給出的建議只會給你j變量中的值,不是counta,counte等 – peSHIr 2009-07-27 13:10:21
正如你已經選擇了答案,我會創建一個新的問題,詳細說明你的事件問題的具體細節。如果你仍然試圖製作多種顏色的列表項目,我也會爲此提出一個單獨的問題。 – dahlbyk 2009-07-28 15:34:36