Diskuze – Lekce 6 - Podmínky (větvení) v C# .NET
ZpětUpozorň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ů.


Opravil bych poznámku - klávesové zkratky pro autoformat - CTRL+K CTRL+D je na celý dokument a CTRL+K CTRL+F na vybraný kód. [VS 2015]
U části s "else" jsem si všimnul drobného nedodělku. Když máme dosadit jedničku, tak by se měla objevit nula. Ale defacto lze dosadit každé číslo kromě 0, abychom dostali tu nulu.
Miloslav Soukup:31.3.2021 8:11
Bože, pardon, moje nevšímavost. Trochu se cítím trapně.
Ahojte ve spolek! Zkouším si naprogramovat menu v restauraci. Jen jsem se
trochu sekla u podmínek. Byl by někdo prosím tak hodný a mrknul se mi na to
a případně dal radu? Ve VS mi to háže chybu, že A,B,C atd. neexistuje. A
pak ještě mi to nechce přijmout string prani.
Kdo se do toho pustí, bude nejlepší! Předem moc děkuju...
Console.WriteLine("*** Vítejte v naší restauraci! ***");
Console.WriteLine("Vyberte prosím z následující nabídky: ");
Console.WriteLine("1. Polévky");
Console.WriteLine("2. Předkrmy");
Console.WriteLine("3. Hlavní jídla");
Console.WriteLine("4. Dezerty");
Console.WriteLine("5. Nápoje");
Console.Write("Vybraná možnost 1..5: ");
int vybranaKategorie = int.Parse(Console.ReadLine());
switch (vybranaKategorie)
{
case 1:
Console.WriteLine("POLÉVKY: ");
Console.WriteLine("A: Domácí vývar s nudlemi");
Console.WriteLine("B: Čočková");
break;
case 2:
Console.WriteLine("PŘEDKRMY: ");
Console.WriteLine("C: Šunková rolka s křenem");
Console.WriteLine("D: Topinka s pikantní směsí");
break;
case 3:
Console.WriteLine("HLAVNÍ JÍDLA: ");
Console.WriteLine("E: Kuřecí řízek s bramborem");
Console.WriteLine("F: Svíčková s knedlíkem");
Console.WriteLine("G: Vepřo knedlo zelo");
break;
case 4:
Console.WriteLine("DEZERTY: ");
Console.WriteLine("H: Zmrzlinový pohár");
Console.WriteLine("I: Jablečný závin");
break;
case 5:
Console.WriteLine("NÁPOJE: ");
Console.WriteLine("J: Sodovka");
Console.WriteLine("K: Minerální voda");
Console.WriteLine("L: Jablečný džus");
Console.WriteLine("M: Pivo");
Console.WriteLine("N: Turecká káva");
break;
default:
Console.WriteLine("Neznámá volba");
break;
}
Console.WriteLine("Zvol písmeno A..N: ");
string vybranaMoznost = Console.ReadLine();
string prani = Console.WriteLine("Dobrou chuť!" );
switch (vybranaMoznost)
{
case A:
Console.WriteLine("Zvoleno: Domácí vývar s nudlemi." + prani);
break;
case B:
Console.WriteLine("Zvoleno: Čočková." + prani);
break;
case C:
Console.WriteLine("Zvoleno: Šunková rolka s křenem." + prani);
break;
}
}
}
}
Alesh:4.4.2021 0:35
První co vidím, že je blbě je toto:
string prani = Console.WriteLine("Dobrou chuť!" );
A pokud jde o tu neexistenci A, B, C, tak tam je problém v tom, že musíš ty stringy "uvozovkovat":
case "A": // nikoli jen case A:
Jinak teda chtělo by se zamyslet, jak omezit ty volby písmen. T třeba vybereš možnost 3 = hlavní jídla, ale pak stejně vybíráš z A..N, přitom hlavní jídla jsou jen E..G.
Soňa Malířová:4.4.2021 18:45
Děkuji moc, zkusila jsem to vyřešit takto a funguje to. Napadá Tě lepší vyřešení písmen?
using System;
namespace menu
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("*** Vítejte v naší restauraci! ***");
Console.WriteLine("Vyberte prosím z následující nabídky: ");
Console.WriteLine("1. Polévky");
Console.WriteLine("2. Předkrmy");
Console.WriteLine("3. Hlavní jídla");
Console.WriteLine("4. Dezerty");
Console.WriteLine("5. Nápoje");
Console.Write("Vybraná možnost 1..5: ");
int vybranaKategorie = int.Parse(Console.ReadLine());
switch (vybranaKategorie)
{
case 1:
Console.WriteLine("POLÉVKY: ");
Console.WriteLine("A: Domácí vývar s nudlemi");
Console.WriteLine("B: Čočková");
break;
case 2:
Console.WriteLine("PŘEDKRMY: ");
Console.WriteLine("C: Šunková rolka s křenem");
Console.WriteLine("D: Topinka s pikantní směsí");
break;
case 3:
Console.WriteLine("HLAVNÍ JÍDLA: ");
Console.WriteLine("E: Kuřecí řízek s bramborem");
Console.WriteLine("F: Svíčková s knedlíkem");
Console.WriteLine("G: Vepřo knedlo zelo");
break;
case 4:
Console.WriteLine("DEZERTY: ");
Console.WriteLine("H: Zmrzlinový pohár");
Console.WriteLine("I: Jablečný závin");
break;
case 5:
Console.WriteLine("NÁPOJE: ");
Console.WriteLine("J: Sodovka");
Console.WriteLine("K: Minerální voda");
Console.WriteLine("L: Jablečný džus");
Console.WriteLine("M: Pivo");
Console.WriteLine("N: Turecká káva");
break;
default:
Console.WriteLine("Neznámá volba");
break;
}
Console.WriteLine("Vyberte písmeno: ");
string vybranaMoznost = Console.ReadLine();
switch (vybranaMoznost)
{
case "A":
Console.WriteLine("Zvoleno: Domácí vývar s nudlemi");
break;
case "B":
Console.WriteLine("Zvoleno: Čočková");
break;
case "C":
Console.WriteLine("Zvoleno: Šunková rolka s křenem");
break;
case "D":
Console.WriteLine("Zvoleno: Topinka s pikantní směsí");
break;
case "E":
Console.WriteLine("Zvoleno: Kuřecí řízek s bramborem");
break;
case "F":
Console.WriteLine("Zvoleno: Svíčková s knedlíkem");
break;
case "G":
Console.WriteLine("Zvoleno: Vepřo knedlo zelo");
break;
case "H":
Console.WriteLine("Zvoleno: Zmrzlinový pohár");
break;
case "I":
Console.WriteLine("Zvoleno: Jablečný závin");
break;
case "J":
Console.WriteLine("Zvoleno: Sodovka");
break;
case "K":
Console.WriteLine("Zvoleno: Minerální voda");
break;
case "L":
Console.WriteLine("Zvoleno: Jablečný džus");
break;
case "M":
Console.WriteLine("Zvoleno: Pivo");
break;
case "N":
Console.WriteLine("Zvoleno: Turecká káva");
break;
default:
Console.WriteLine("Zvolena blbost.");
break;
}
Console.WriteLine("Dobrou chuť!");
Console.ReadKey();
}
}
}
Alesh:4.4.2021 20:06
Bez znalostí (alespoň) polí se to řešení vymýšlí docela blbě , ale i tak by šlo vymyslet
řešení, jak zamezit volbám, které by nemělo jít zvolit. V tuto chvíli ty
sice nabídneš uživateli písmenka, která má volit, ale stejně může
zvolit cokoliv od A až po N a budou mu ty možnosti fungovat, bez ohledu na to,
co zvolil za číslo. Jinak bych přidal pár prázdných řádků, aby to celé
nebylo takové namaštěné na sebe.
*** Vítejte v naší restauraci! ***
Vyberte prosím z následující nabídky:
1. Polévky
2. Předkrmy
3. Hlavní jídla
4. Dezerty
5. Nápoje
Vybraná možnost 1..5: 3
HLAVNÍ JÍDLA:
E: Kuřecí řízek s bramborem
F: Svíčková s knedlíkem
G: Vepřo knedlo zelo
Vyberte písmeno:
N
Zvoleno: Turecká káva
Dobrou chuť!
Zobrazeno 10 zpráv z 172.