Miten saant ehtyä tälläsen asian vb.netillä
minulla on muuttujat a,b,z,x,y
a:n pitäisi olla yhtäkuin pienin (tai suurin riippuen tilaanteesta) muuttujista z,x,y
ja b:n toiseksi pienin esim.
z = 1 x = 2 y = 3
a = z
b = x
Douch....
Juuri tämänkaltaisissa tilanteissa C:n joko-tai pikavalinta on kätevä...
Tarkistat ensin, kumpi on suurempi parista z,x ja sitten kumpi suurempi parista x,y. Sitten vielä vertaillaan näiden kahden keskinäistä järjestystä.
Koodi vetäisty syvältä hatun pohjalta.
Dim a, b, x, y, z x = 1 : y = 6 : z = 0 'testaa eri arvoilla If z > x Then 'z kenties suurin, x kenties keskellä If z > y Then ' z > y <?> x a = z If x > y Then b = y Else b = x 'Pienin on joko x t. y Else ' y > z > x, eli x pienin a = y b = x End If Else 'x kenties suurin ja mahtavin If x > y Then 'x > z <?> y a = x If z > y Then b = y Else b = z Else 'y > x > z a = y b = z End If End If
Eli tuon koodin jälkeen a = max ja b = min.
Tässä ratkaisu:
Dim z As Integer = 1 Dim x As Integer = 2 Dim y As Integer = 3 Dim a As Integer 'tähän pienin Dim b As Integer 'tähän suurin Dim c1 As Integer Dim c2 As Integer Dim c3 As Integer Dim c As Integer 'tähän keskimmäinen a = Math.Min(z, y) a = Math.Min(a, x) 'tässä pienin b = Math.Max(z, y) b = Math.Max(b, x) 'tässä suurin 'keskimmäisen valinta kolmesta c1 = Math.Min(x, y) c2 = Math.Min(x, z) c3 = Math.Min(y, z) c = Math.Max(c1, c2) c = Math.Max(c, c3) TextBox1.Text = a textbox2.text = c textbox3.text = b
Jos lukuja on enempi, käytä Sort ohjelmia!!!
lainaus:
Juuri tämänkaltaisissa tilanteissa C:n joko-tai pikavalinta on kätevä...
Jos ymmärsin oikein mitä tarkoitat, niin VB:ssä on samantapainen IIf-funktio. Sitä tosin käytetään varsin harvoin. Nimittäin seuraava C-koodinpätkä...
luku = 5 > 1 ? 2 : 3
...voidaan kirjoittaa VB:ssä näin:
luku = IIf(5 > 1, 2, 3)
Viestin otsikko muuten voisi olla paljon parempi.
Aihe on jo aika vanha, joten et voi enää vastata siihen.