Ak máš len R1 a R2, tak žiaden cyklus nepotrebuješ.
To, či je číslo zadané správne, skontroluješ pomocou metódy double.TryParse, ktoré ti v prípade úspechu uloží rozpoznanú hodnotu do výstupnej premennej, takže nepotrebuješ potom volať double.Parse.
To, či je číslo kladné, skontroluješ pomocou porovnania s 0.
Vzorec pre výpočet výsledného odporu (a vlastne aj všetko ostatné) ti už napísal MM.
Výsledok by mohol vyzerať takto:
static bool TryParseResistanceValue(string text, out double result)
{
// hodnota nemá formát čísla
if (!double.TryParse(text, out result))
return false;
// hodnota nie je kladná
if (result <= 0)
return false;
// všetko je o.k.
return true;
}
void btnpocitej_Click(object sender, EventArgs e)
{
double r1, r2;
if (!TryParseResistanceValue(txtR1.Text, out r1))
{
MessageBox.Show("Zadaný odpor R1 musí byť kladné číslo.");
return;
}
if (!TryParseResistanceValue(txtR2.Text, out r2))
{
MessageBox.Show("Zadaný odpor R2 musí byť kladné číslo.");
return;
}
double result = 1 / ((1 / r1) + (1 / r2));
txtvysledek.Text = string.Format("{0} Ω", result);
}
OT k nemiestnym komentárom k C#:

Lepšie ako v dementnej Jave s dementne riešenými výnimkami, ktorá navyše nepozná ani partial class.
