Diskuze: Switch - chyba

C# .NET .NET (C# a Visual Basic) Switch - chyba American English version English version

Avatar
marcopolo2542001:

Zdravím, dělám si aplikaci v konzoli ale mám jistý problém.. -

int promenna = int.Parse(Console.ReadLine());
            switch (promenna) {
                case 1:

a td.. Když to ale zapnu a dám 1, hned mi to spadne a hodí chybu na ten řádek první (tuším)..
Nevíte někdo co s tím udělat ? Díky.

 
Odpovědět 15. října 14:45
Avatar
Odpovídá na marcopolo2542001
Erik Maruškin:

Myslím že by pomohlo keby sem dáš celý blok kódu.

 
Nahoru Odpovědět 15. října 14:52
Avatar
Odpovídá na Erik Maruškin
marcopolo2542001:
int promenna= int.Parse(Console.ReadLine());
            switch (promenna) {
                case 1:
                    Console.WriteLine("Zadejte svou výšku v cm");
                    double vyska = Double.Parse(Console.ReadLine());
                    Console.WriteLine("Zadejte svou hmotnost v kg ");
                    double hmotnost = double.Parse(Console.ReadLine());
                    double bmi = hmotnost / (vyska * vyska) * 10000;

                    if (bmi < 18.5){
                        Console.WriteLine("Vaše BMI je " + bmi + " - Podváha");}
                    if ((bmi >= 18.5) && (bmi < 24.9)){
                        Console.WriteLine("Vaše BMI je " + bmi + " - Normalní váha");}
                    if ((bmi >= 25) && (bmi < 29.9)){
                        Console.WriteLine("Vaše BMI je " + bmi + " - Menší nadváha");}
                    if ((bmi >= 30) && (bmi < 34.9)){
                        Console.WriteLine("Vaše BMI je " + bmi + " - Obezita 1. stupně");}
                    if ((bmi >= 35) && (bmi < 39.9)){
                        Console.WriteLine("Vaše BMI je " + bmi + " - Obezita 2. stupně");}
                    if (bmi >= 40){
                        Console.WriteLine("Vaše BMI je " + bmi + " - Obezita 3. stupně");}
                    break;

Potom mam samozřejmě case 2 a td,, Ten ovšem taky nejede

Editováno 15. října 14:58
 
Nahoru Odpovědět 15. října 14:57
Avatar
Odpovídá na marcopolo2542001
Erik Maruškin:

Tam sa chyba nenachádza .. pridaj celú triedu inak ti neviem pomôcť

 
Nahoru Odpovědět 15. října 15:01
Avatar
marcopolo2542001:

Tak potom mam ještě

default: Console.WriteLine("Pro toto označení není žádná operace"); break;

Nic jiného kromě

Console.Writeline

- asi 3x tam nemám..

 
Nahoru Odpovědět 15. října 15:04
Avatar
Odpovídá na marcopolo2542001
Michal Štěpánek:

Možná by pomohlo, kdybys vysvětlil:

  1. K čemu tam vlastně to "case" máš? Jaký to má mít význam, když v tom pak podmínkuješ podle dalších vstupů výstupy?
  2. Jakou to vypíše chybu?
Nahoru Odpovědět 15. října 17:01
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Avatar
VitekST
Člen
Avatar
Odpovídá na marcopolo2542001
VitekST:

Odlaď si to debuggerem.
Definuj si zarážku, spusť program v ladícím módu (klávesa F5) a mrkni se, co se v tom programu děje.

Můžeš vidět hodnoty proměnných a také krokovat, více informací zde: https://msdn.microsoft.com/…t243867.aspx

Jinak, nebylo by od věci vědět, na jakou chybu to padá.

 
Nahoru Odpovědět 15. října 17:14
Avatar
HONZ4
Člen
Avatar
Odpovídá na marcopolo2542001
HONZ4:

můj typ - chyba bude spíš v Parse, takhle volně doporučuji používat raději TryParse.
Pokud Parse, tak vždy v try/catch bloku!

 
Nahoru Odpovědět 15. října 18:12
Avatar
Odpovídá na marcopolo2542001
Michal Štěpánek:

A ještě bych řekl, že máš trošku divně ty podmínky. Za prvé bych používal If -> elseIf -> else a ne jen samé If a za druhé co se má stát, když výsledná hodnota bude přesně 24,9 nebo 29,9... atd.? Nemáš určeno, co se má stát, když té podmínce nic nevyhoví...

Nahoru Odpovědět  +1 15. října 18:24
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
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 9 zpráv z 9.