Satiata
@Satiata

Использование switch вместе с RadioButton(и некорректная работа switch)?

Добрый день :)
Возникла проблема в использовании оператора Switch.
Есть код, который, соответственно, работает с If:

private: System::Void otvetButton_Click(System::Object^ sender, System::EventArgs^ e) {

double a, b, I, F, x;
int n;

a = Convert::ToDouble(aPredelText->Text);
b = Convert::ToDouble(bPredelText->Text);
n = Convert::ToInt32(nText->Text);


if (constRadioButton->Checked) {
F = f(x);
I = Integr(a, b, n);
}

if (stepenRadioButton->Checked) {
I=155; //переменная пока вставлена для проверки работы
}

otvet->Text = I.ToString("n");

}


А мне нужно, чтобы при нажатии одного из нескольких радиобаттонов срабатывал определенный кейс в switch. Как это можно осуществить?

И, если честно, есть небольшая проблема в виде того, что я пыталась просто запустить свитч, дабы испробовать, будет ли работать. Выглядело это так:

private: System::Void otvetButton_Click(System::Object^ sender, System::EventArgs^ e) {

double a, b, I, F, x;
int n;

a = Convert::ToDouble(aPredelText->Text);
b = Convert::ToDouble(bPredelText->Text);
n = Convert::ToInt32(nText->Text);

switch (n)
{
case '1': {
F = f(x);
I = Integr(a, b, n);
}
break;

case '2':
I=155;
break;
}

otvet->Text = I.ToString("n");

}


т.е. в зависимости от введенного мной значения переменной n должен был выбираться определенный кейс. Но этого не происходит и в итоге в текстовое поле otvet у меня выводится 0.00

Что не так и что необходимо исправить?

В гугле не забанили, просто чисто своей проблемы там не нашла :) А все что есть, на каких бы то ни было языках, - это на С# и немного в ненужном мне варианте :(
  • Вопрос задан
  • 3529 просмотров
Решения вопроса 2
gbg
@gbg Куратор тега C++
Любые ответы на любые вопросы
Первое - почему поломался switch - уберите кавычки. C++ расценивает ваше '1' как число 49 (ASCII-код символа 1).
Второе - как сделать реакцию switch на radiobutton - я давно не использую VCL, но возможно, у groupBox, в котором ваши переключатели лежат, можно узнать, какой из них выбран.
Ответ написан
AlekseyNemiro
@AlekseyNemiro
full-stack developer
Если переменная n имеет тип int, то вероятно следует проверять числа:
switch (n)
{
  case 1: 
    F = f(x);
    I = Integr(a, b, n);
    break;
  case 2:
    I=155;
    break;
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы