NOVINKA: Získej 40 hodin praktických dovedností s AI – ZDARMA ke každému akreditovanému kurzu!
S účinností od 26. 3. jsme aktualizovali Zásady zpracování osobních údajů – doplnili jsme informace o monitorování telefonických hovorů se zájemci o studium. Ostatní části zůstávají beze změn.
Funkce, kterou se snažíš použít je dostupná pouze pro registrované uživatele. Buďto se přihlas nebo si zdarma vytvoř nový účet.

Diskuze – Lekce 5 - Podmínky (větvení) ve VB.NET

Zpět

Upozorňujeme, že diskuze pod našimi online kurzy jsou nemoderované a primárně slouží k získávání zpětné vazby pro budoucí vylepšení kurzů. Pro studenty našich rekvalifikačních kurzů nabízíme možnost přímého kontaktu s lektory a studijním referentem pro osobní konzultace a podporu v rámci jejich studia. Toto je exkluzivní služba, která zajišťuje kvalitní a cílenou pomoc v případě jakýchkoli dotazů nebo projektů.

Komentáře
Avatar
Libor Šimo (libcosenior):12.2.2016 15:00

Skoda ze tu nie je vysvetlena podmienka (funkcia) IIf().

Odpovědět
12.2.2016 15:00
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Avatar
Odpovídá na Libor Šimo (libcosenior)
Michal Žůrek - misaz:12.2.2016 15:02

iif je v podstatě ternární operátor.

 
Odpovědět
12.2.2016 15:02
Avatar
Odpovídá na Michal Žůrek - misaz
Libor Šimo (libcosenior):12.2.2016 15:05

V cecku je napr.
a = c < d ? c : d;
Ako by to bolo s iif?

Odpovědět
12.2.2016 15:05
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Avatar
Odpovídá na Libor Šimo (libcosenior)
Michal Žůrek - misaz:12.2.2016 15:11

je to funkce s třemi parametry, podmínka co vrátí, když je podmínka pravdivá a co vrátí když podmínka neplatí.

 
Odpovědět
12.2.2016 15:11
Avatar
Odpovídá na Michal Žůrek - misaz
Libor Šimo (libcosenior):12.2.2016 15:15

Uz je mi to jasne.
a = IIf(c < d, c, d)
Je to spravne?
Daju sa aj spajat ako v cecku?
a = IIf(c < d, c, IIf(c = d, d, a))
Sorry, trva mi to dlhsie, pisem na malom tablete.

Editováno 12.2.2016 15:18
Odpovědět
12.2.2016 15:15
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Avatar
Odpovídá na Libor Šimo (libcosenior)
Michal Žůrek - misaz:12.2.2016 16:45

jo jde to, je to obyčejná funkce.

 
Odpovědět
12.2.2016 16:45
Avatar
Jana Morče
Člen
Avatar
Jana Morče:5.6.2017 11:45

Ahoj, dělala jsem tu první kalkulačku bez Select case, ale kalkulačky mi nefungovala bez kontroly správnosti volby (Else). Respektive výsledek skončí vždy (kromě sčítání samozřejmě, to je první If. Což by ale nemělo, neboť aplikace je "vypodmínkovaná" tak, aby reagovala na každou ze 4 možností. Mám to prostě takhle a bez Else funguje jen to sčítání; s Else funguje vše..Děkuji moc za radu..

Module Module1

Sub Main()
Console.Write­Line("Vítejte ve virtuální kalkulačce.")
Console.Write­Line("Zadejte první číslo: ")
Dim a As Single = Console.ReadLine()
Console.Write­Line("Zadejte druhé číslo: ")
Dim b As Single = Console.ReadLine()
Console.Write­Line("Zvolte si operaci:")
Console.Write­Line("1 - sčítání")
Console.Write­Line("2 - odčítání")
Console.Write­Line("3 - násobení")
Console.Write­Line("4 - dělení")
Dim volba As Integer = Console.ReadLine()
Dim vysledek As Single = 0
If volba = 1 Then
vysledek = a + b
If volba = 2 Then
vysledek = a - b
If volba = 3 Then
vysledek = a * b
If volba = 4 Then
vysledek = a / b
End If
End If
End If
End If
If volba > 0 And volba < 5 Then
Console.Write­Line("Výsledek: " & vysledek)
Else
Console.Write­Line("Neplatná volba!")
End If
Console.Write­Line("Děkuji za použití kalkulačky, aplikaci ukončíte libovolnou klávesou..")
Console.ReadKey()

End Sub

End Module

 
Odpovědět
5.6.2017 11:45
Avatar
Odpovídá na Jana Morče
Michal Žůrek - misaz:5.6.2017 20:41

tvé podmínky, když je správně odsadíš vypadíjí přibližně následovně

If volba = 1 Then
        vysledek = a + b
        If volba = 2 Then
                vysledek = a - b
                If volba = 3 Then
                        vysledek = a * b
                        If volba = 4 Then
                                vysledek = a / b
                        End If
                End If
        End If
End If

a jak že to vlastně funguje? Pokud platí první podmínka (volba = 1), tak se jednak provede matematická operace a kontorluje se druhá podmínka, ale ta se má přece kontrolovat pokud první podmínka neplatí.... Po posunutí End If na správne řádky by to mělo vypadat následovně.

If volba = 1 Then
        vysledek = a + b
End If
If volba = 2 Then
        vysledek = a - b
End If
If volba = 3 Then
        vysledek = a * b
End If
If volba = 4 Then
        vysledek = a / b
End If

teď se všechny podmínky zpracují nezávisle na sobě a operace se provede jen pro vybranou volbu (ostatní podmínky, které se kontrolují sekvenčně za sebou nezareagují).

 
Odpovědět
5.6.2017 20:41
Avatar
cinkim
Člen
Avatar
Odpovídá na Michal Žůrek - misaz
cinkim:30.10.2018 16:24

Podmínky jsem pochopil. Ale nechápu proč paní rovnou přiřadila do proměnné výsledek = 0, když se potom v podmínkách provádí výpočty a proměnná se změní. Stačí přeci pouze Dim vysledek As Single.
Nebo se pletu?

 
Odpovědět
30.10.2018 16:24
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 10 zpráv z 11.