Я попытался разработать программу, которая учитывает гласные в предложении.Подсчет гласных с помощью переключателя
В моем коде я использовал оператор 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;
}
}
Другой вопрос: Я попытался изменить цвет текста дисплея в спискеBox. Возможно ли иметь разные цвета? То, что я также пробовал здесь, это первые 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();
}
Я думаю, что предложение дается нолдорин только даст вам значение переменной J, а не counta, counte и т. д. – peSHIr
Как вы уже выбрали ответ, я бы создал новый вопрос, подробно описывающий специфику вашего вопроса. Если вы все еще пытаетесь сделать многоцветные элементы списка, я бы тоже задал отдельный вопрос. – dahlbyk