Opcje wyboru. Instrukcja warunkowa switch

Instrukcja warunkowa switch, to instrukcja wielokrotnego wyboru, która po sprawdzeniu wyrażenia dopasowania do wzorca wybiera jedną z sekcji case

Wskazówka:


switch (wyrażenie)
   {
	case wzorzec1: instrukcja-1;break;
    case wzorzec2: instrukcja-2;break;
	case wzorzec3: instrukcja-3;break;
	.
	.
	.
	.
	default: instrukcja-braku-dopasowania; break;//instrukcja nie jest wymagana
   }

Cel: Napisz aplikację z zastosowaniem kontrolki RadioButton i użyciem instrukcji warunkowej switch zrealizuje podstawowe działania mateamtyczne

radiobutton visual studio c#

Krok 1. Układ komponentów


visula studio c#

Krok 2. Zmiana zawartości właściwości Text poszczególnych kontrolek

zmiana zawartości Text visual studio c#

Skompiluj program i sprawdź zachowanie się kontrolek RadioButton

Krok 3. Przypisujemy kontrolki RadioButton do jednego zdarzenia CheckedChanged

Komponenty RadioButton wprowadź w stan aktywności edycyjnej

Komponenty RadioButton wprowadź w stan aktywności edycyjnej

Każdemu z komponentów RadioButton przypisz jedną i tą samą funkcję zdarzenia CheckedChanged

zdarzenie checkedchanged visual studio c#

Krok 4. Zastosuj instrukcję wielokrotnego wyboru switch w funkcji zdarzenia CheckedChanged

W tym zdarzeniu ustalimy rodzaj wybranego działania matematycznego. Wybór zapamiętamy w zmiennej lokalnej klasy Form typu byte. Przyjmiemy, że wartość 0 to brak wyboru, 1 to dodawanie, 2 to odejmowanie, 3 to mnożenie, 4 to dzielenie

Wskazówka:


private void RadioButton1_CheckedChanged(object sender, EventArgs e)
{
   RadioButton rb = sender as RadioButton;
   if (rb.Checked)
	 {
		 switch (rb.Text)
		 {
			 case "+": dzialanie = 1; break;
			 case "-": dzialanie = 2; break;
			 case "*": dzialanie = 3; break;
			 case "/": dzialanie = 4; break;
			 default:  dzialanie = 0; break;
		}
	}
}

Gdzie zmienna dzialanie jest zadeklarowana jak poniżej

public partial class Form1 : Form
{
byte dzialanie = 0;

Sprawdź czy program się kompiluje

Krok 5. Wykonujemy obliczenie w zdarzeniu Click komponentu Button

Odczyt zmiennych wprowadzonych z klawiatury potraktujemy jako prawidłowe i nie będziemy robić zabezpieczenia konwersji. Użyjemy trzech zmiennych lokalnych typu rzeczywistego

Wskazówka:


private void Button1_Click(object sender, EventArgs e)
{
	float a = Convert.ToInt16(textBox1.Text),
	b = Convert.ToInt16(textBox2.Text),
	wynik = 0;
}

Instrukcja switch realizująca nasz problem przyjmie poniższą postać (wyniki działań wyślemy do komponentu label3)

Wskazówka:


switch (dzialanie)
{
 case 1:wynik = a + b;break;
 case 2: wynik = a - b; break;
 case 3: wynik = a * b; break;
 case 4: wynik = a / b; break;
 dafault: wynik = 0; break;
}
label3.Text = wynik.ToString();

RadioButton rb = sender as RadioButton

Uwaga: Bardziej eleganckim rozwiązaniem zastosowania zmiennej przechowującej informację o wybranym działaniu matematycznym jest zastosowanie typu wyliczeniowego

public partial class Form1 : Form
{
enum DZIALANIE { BRAK, DODAWANIE, ODEJMOWANIE, MNOZENIE, DZIELENIE };
private DZIALANIE dzialanie=DZIALANIE.BRAK;

Ćwiczenie sprawdzające

1. Zabezpiecz aplikację przed błędami konwersji i dzieleniem przez zero.

Alkomat- wirtualny test

Alkomat- darmowa aplikacja na Androida

Pobierz ze sklepu Google Play
Olinowanie stałe- kalkulator średnic

Olinowanie stałe- darmowa aplikacja na Androida

Pobierz ze sklepu Google Play
przepis na gogfry

Przepis na gofry

zobacz
przepis na bitą śmietanę

Przepis na bitą śmietanę

zobacz