HALLOWEEN JE TADY: Získej 66 % extra kreditů zdarma při nákupu od 1199 kreditů s promo kódem NEBOJSEIT66. Zjisti více:
NOVINKA: Začni v IT jako webmaster s komplexním akreditovaným online kurzem Tvůrce WWW stránek. Zjisti více:

Diskuze – Lekce 6 - Podmínky (větvení) v C# .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
Nejnovější komentáře jsou na konci poslední stránky.
Avatar
Jan Křížek:16.11.2018 11:31

Mám dotaz ohledně příkladu s odmocninou. Nerozumím, proč je podmínka nastavena tak aby zadané číslo bylo větší jak nula, a v else je nula zahrnuta s výstupním textem "Odmocnina ze záporného čísla neexistuje!" ?. Čistě z matematického hlediska 0 není ani záporným ani kladným číslem a navíc se dá odmocnit.

Avatar
Tomáš Endlicher:25.11.2018 14:01

Ahoj, nevíte někdo proč mi pátý řádek od spodu hlásí chybu?

Console.Write­Line("Zadejte první číslo:");
float a = float.Parse(Con­sole.ReadLine());
Console.Write­Line("Zadejte druhé číslo:");
float b = float.Parse(Con­sole.ReadLine());
Console.Write­Line("Zvolte operaci");
Console.Write­Line("1 - sčítání");
Console.Write­Line("2 - odčítání");
Console.Write­Line("1 - násobení");
Console.Write­Line("2 - dělení");
int volba = int.Parse(Con­sole.ReadLine());
float vysledek = 0;
if (volba == 1)
vysledek = (a + b);
if (volba == 2)
vysledek = (a - b);
if (volba == 3)
vysledek = (a * b);
if (volba == 4)
vysledek = (a / b);
Console.Write­Line("Výsledek je {0}", vysledek);
else
if ((volba < 1) && (volba > 4))
Console.Write­Line("Neplatná volba");
Console.ReadKey();

Avatar
Odpovídá na Tomáš Endlicher
Neaktivní uživatel:25.11.2018 19:46

Pokud chceš pouze za určité podmínky vykonat více věcí, musíš je dát do složených závorek. To znamená, že to <code>else</code> už tam nemá vůbec žádný smysl. Předpokládám, že to, co jsi chtěl, je tak nějak:

if (volba == 4) vysledek = (a/b);
if (volba > 0 && volba < 5) Console.WriteLine("Výsledek je {0}", vysledek);
else Console.WriteLine("Neplatná volba");

A příště prosím používej tlačítko na vložení kódu (<code></></code> vedle smajlíka), ono se to pak líp čte.

Odpovědět
Neaktivní uživatelský účet
Avatar
Filip Dvořáček :4.3.2019 17:02

Ahoj,
mám problém s podmínkami. Nedokážu ho nijak blíže popsat. Prostě nefungují. Přikládám sem jeden kód tak mi ho prosím někdo zkontrolujte.
Předem děkuji za pomoc
Filip

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Kalkulačka
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Výtejte v jednoduché kalkulačce!");
            Console.WriteLine("Zadejte 1. číslo:");
            float a = float.Parse(Console.ReadLine());
            Console.WriteLine("Zadejte 2. číslo:");
            float b = float.Parse(Console.ReadLine());
            Console.WriteLine("Zvolte druh operace:");
            Console.WriteLine("1-Sčítání");
            Console.WriteLine("2-Odčítání");
            Console.WriteLine("3-Násobení");
            Console.WriteLine("4-Dělení");
            int operace = int.Parse(Console.ReadLine());
            float vysledek = 0;
            if (operace == 1)
                vysledek = a + b;
            else
            if (operace == 2)
                vysledek = a - b;
            else
            if (operace == 3)
                vysledek = a * b;
            else
            if (operace == 4)
                vysledek = a / b;

            if (operace <0 && operace >5)
                Console.WriteLine("Neplatná operace!");
            else
            Console.WriteLine("Výsledek je ", vysledek );

            Console.ReadKey();
        }
    }
}
Avatar
Filip Dvořáček :4.3.2019 17:24

Nebo zde:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApp5
{
    class Program
    {
        static void Main(string[] args)
        {
            if (3 > 5) ;
                Console.WriteLine("pravda");
            Console.WriteLine("dsrf");
            Console.ReadKey();
        }
    }
}

Podmínka nebyla splněna a stejně vypíše "pravda".
Kde dělám chybu?
Ještě dodávám, že pokud vzorový kód zkopíruju (Ctrl C a V) tak funguje, ale pokud ho opíšu tak nefunguje.
Děkuji za pomoc
Filip

Editováno 4.3.2019 17:25
Avatar
Odpovídá na Filip Dvořáček
Neaktivní uživatel:4.3.2019 17:29

Co konkrétně ti nefunguje? Jestli

if (operace < 0 && operace > 5)

tak

  1. Buďto uvedeš hodnoty, které jsou mimo rozsah platných možností (0 a 5), nebo použiješ operátory, které nezahrnují hodnoty jim předložené (<code><</code> a <code>></code>). Vzhledem k tomu, že to kombinuješ, si počítač myslí, že 0 a 5 jsou platné.
  2. Hodnota určitě nebude najednou mimo rozsah nahoře i dole. Místo <code>&&</code> použij <code>||</code>.
Odpovědět
Neaktivní uživatelský účet
Avatar
Odpovídá na Filip Dvořáček
Neaktivní uživatel:4.3.2019 17:32

V tomto případě je problém ve středníku za podmínkou. Oddělej ho a všechno bude v pořádku.

if (3 > 5) ;
Odpovědět
Neaktivní uživatelský účet
Avatar
Odpovídá na Neaktivní uživatel
Filip Dvořáček :4.3.2019 17:36

Tento kod vypise "Výsledek je" viz fot.
Díky

Avatar
Odpovídá na Neaktivní uživatel
Filip Dvořáček :4.3.2019 17:40

Moc díky za pomoc středník jsem odendal a fungujeto!

Nejnovější komentáře jsou na konci poslední stránky.
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 172.