NOVINKA: Získej 40 hodin praktických dovedností s AI – ZDARMA ke každému akreditovanému kurzu!

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
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.

 
Odpovědět
16.11.2018 11:31
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();

 
Odpovědět
25.11.2018 14:01
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
25.11.2018 19:46
Neaktivní uživatelský účet
Avatar
 
Odpovědět
27.11.2018 13:35
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();
        }
    }
}
 
Odpovědět
4.3.2019 17:02
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
 
Odpovědět
4.3.2019 17:24
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
4.3.2019 17:29
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
4.3.2019 17:32
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

 
Odpovědět
4.3.2019 17:36
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!

 
Odpovědět
4.3.2019 17:40
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.