Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze: VS 2010 consolová aplikace a opakování příkazu

Aktivity
Avatar
hume638
Člen
Avatar
hume638:26.10.2014 15:02

Ahoj, chtěl bych se zeptat, dostal jsem za úkol vytvořit consolovou aplikaci která bude využívat switch,case např. uživatel zadá jméno státu nebo země program vypíše hlavní město, populaci, jazyk atd. ale můžeme vymyslet vlastní téma. Mě zajímalo jak udělat to, aby po zadaní státu, země a následném vypsání hlavního města atd. zařídit aby program nespadl a mohly se do něj dále psát státy, země. Jde mi hlavně o to, že jsem tam dal podmínku, že pokud uživatel zadá zemi která neexistuje, napsal ji špatně nebo jsem ji nezohlednil v programu, program mu vypíše aby to zkusil znovu. Tady ale nastává problém. Jakmile po vypsání věty "Zkuste to znovu" něco napíšu a dám enter program jednoduše spadne. Já bych chtěl aby to vlastně po tom vypsání "Zkuste to znovu" jelo od znova, celý ten kod a tak furt dokola dokud uživatel sám program neukončí. Omlouvám se jestli jsem špatně popsal to o co mi jde, ale líp to popsat nedokážu.

Editováno 26.10.2014 15:02
 
Odpovědět
26.10.2014 15:02
Avatar
Jan Vargovský
Tvůrce
Avatar
Odpovídá na hume638
Jan Vargovský:26.10.2014 15:26

Ukaž nám kód :)

 
Nahoru Odpovědět
26.10.2014 15:26
Avatar
hume638
Člen
Avatar
hume638:26.10.2014 15:30
namespace ConsoleApplication4
{
    class Program
    {
        static void Main(string[] args)
        {

            Console.WriteLine("Zadejte jméno firmy");
            string Firma = Console.ReadLine();
            switch (Firma.ToUpper())
            {
                case "GOOGLE":
                    Console.ForegroundColor = ConsoleColor.Blue;
                    Console.WriteLine(" Založeno: 4. září 1998, Menlo Park, Kalifornie, USA");
                    Console.WriteLine("Generální ředitel: Larry Page");
                    Console.WriteLine("Ústředí společnosti: Mountain View, CA, Spojené státy americké");
                    Console.WriteLine("Zakladatelé: Larry Page, Sergey Brin");
                    break;

                case "APPLE":
                    Console.ForegroundColor = ConsoleColor.DarkGray;
                    Console.WriteLine("Založeno: 1. dubna 1976, Cupertino, Kalifornie, USA");
                    Console.WriteLine("Generální ředitel: Tim Cook");
                    Console.WriteLine("Ústředí společnosti: Cupertino, CA, Spojené státy americké");
                    Console.WriteLine("Zakladatelé: Steve Jobs, Ronald Wayne, Steve Wozniak");
                    break;










                default:
                    Console.WriteLine("Zadaná firma neexistuje, není zohledněna v programu, nebo jste ji špatně napsali");
                    Console.WriteLine("Zkuste to zvonu");
                    Console.ReadLine();

 break;
            }

            Console.ReadKey();

        }
    }
}
 
Nahoru Odpovědět
26.10.2014 15:30
Avatar
Jan Vargovský
Tvůrce
Avatar
Odpovídá na hume638
Jan Vargovský:26.10.2014 15:32
string firma;
while ((firma = Console.ReadLine()) != "konec")
{
    Console.WriteLine("Zadej jmeno firmy:");
    switch (firma.ToUpper())
    {
        case "FIRMA 1":
            ...
            break;
        .
        .
        .
        case "FIRMA n":
            ...
            break;
        default:
            Console.WriteLine("Nenalezeno");
            break;
    }
}
 
Nahoru Odpovědět
26.10.2014 15:32
Avatar
hume638
Člen
Avatar
Odpovídá na Jan Vargovský
hume638:26.10.2014 15:39

Mockrát vám děkuji za vaší pomoc, ale rád bych se vás ještě zeptal ted ten kod vypadá takhle

     Console.WriteLine("Zadejte jméno firmy");
string Firma = Console.ReadLine();
 while ((Firma = Console.ReadLine()) != "konec")

switch (Firma.ToUpper())
{
    case "GOOGLE":
        Console.ForegroundColor = ConsoleColor.Blue;
        Console.WriteLine(" Založeno: 4. září 1998, Menlo Park, Kalifornie, USA");
        Console.WriteLine("Generální ředitel: Larry Page");
        Console.WriteLine("Ústředí společnosti: Mountain View, CA, Spojené státy americké");
        Console.WriteLine("Zakladatelé: Larry Page, Sergey Brin");
        break;

    case "APPLE":
        Console.ForegroundColor = ConsoleColor.DarkGray;
        Console.WriteLine("Založeno: 1. dubna 1976, Cupertino, Kalifornie, USA");
        Console.WriteLine("Generální ředitel: Tim Cook");
        Console.WriteLine("Ústředí společnosti: Cupertino, CA, Spojené státy americké");
        Console.WriteLine("Zakladatelé: Steve Jobs, Ronald Wayne, Steve Wozniak");
        break;

    default:
        Console.WriteLine("Zadaná firma neexistuje, není zohledněna v programu, nebo jste ji špatně napsali");
        Console.WriteLine("Zkuste to zvonu");
        Console.ReadLine();

        break;

Problém ale je, že když zadám cokoli jiného než ty dvě firmy a dám enter tak se nic nestane ale až podruhé co zmáčknu enter se objeví to "Zkuste to zovu" neví kde tam mám chybu jestli je mezera někde kde nemá být nebo něco takového?

Editováno 26.10.2014 15:40
 
Nahoru Odpovědět
26.10.2014 15:39
Avatar
Gramli
Tvůrce
Avatar
Odpovídá na hume638
Gramli:26.10.2014 16:15

Zkus to takhle:

Console.WriteLine("Zadejte jméno firmy");
string Firma = Console.ReadLine();
while (Firma != "konec")

switch (Firma.ToUpper())
{
case "GOOGLE":
   Console.ForegroundColor = ConsoleColor.Blue;
   Console.WriteLine(" Založeno: 4. září 1998, Menlo Park, Kalifornie, USA");
   Console.WriteLine("Generální ředitel: Larry Page");
   Console.WriteLine("Ústředí společnosti: Mountain View, CA, Spojené státy americké");
   Console.WriteLine("Zakladatelé: Larry Page, Sergey Brin");
   break;

case "APPLE":
   Console.ForegroundColor = ConsoleColor.DarkGray;
   Console.WriteLine("Založeno: 1. dubna 1976, Cupertino, Kalifornie, USA");
   Console.WriteLine("Generální ředitel: Tim Cook");
   Console.WriteLine("Ústředí společnosti: Cupertino, CA, Spojené státy americké");
   Console.WriteLine("Zakladatelé: Steve Jobs, Ronald Wayne, Steve Wozniak");
   break;

default:
   Console.WriteLine("Zadaná firma neexistuje, není zohledněna v programu, nebo jste ji špatně napsali");
   Console.WriteLine("Zkuste to zvonu");
   Console.ReadLine();

   break;
Nahoru Odpovědět
26.10.2014 16:15
Kdo to říká ten to je...
Avatar
hume638
Člen
Avatar
Odpovídá na Gramli
hume638:26.10.2014 16:24

Taky nejde. Když napíši google tak to akorát furt dokola píše ty informace o něm.

 
Nahoru Odpovědět
26.10.2014 16:24
Avatar
Jan Vargovský
Tvůrce
Avatar
Odpovídá na hume638
Jan Vargovský:26.10.2014 16:55

Čím to asi bude? :)

Console.WriteLine("Zadaná firma neexistuje, není zohledněna v programu, nebo jste ji špatně napsali");
Console.WriteLine("Zkuste to zvonu");
Console.ReadLine();

Odmaž tam tu ReadLine metodu.

 
Nahoru Odpovědět
26.10.2014 16:55
Avatar
hume638
Člen
Avatar
hume638:26.10.2014 17:20

Tak jo smazal jsem ReadLine a vypadá to takhle

namespace ConsoleApplication4
{
    class Program
    {
        static void Main(string[] args)
        {

            Console.WriteLine("Zadej jmeno firmy:");
            string firma;
              while ((firma = Console.ReadLine()) != "konec")
          {
               switch (firma.ToUpper())

              {
                case "GOOGLE":
                    Console.ForegroundColor = ConsoleColor.Blue;
                    Console.WriteLine(" Založeno: 4. září 1998, Menlo Park, Kalifornie, USA");
                    Console.WriteLine("Generální ředitel: Larry Page");
                    Console.WriteLine("Ústředí společnosti: Mountain View, CA, Spojené státy americké");
                    Console.WriteLine("Zakladatelé: Larry Page, Sergey Brin");
                    break;

                case "APPLE":
                    Console.ForegroundColor = ConsoleColor.DarkGray;
                    Console.WriteLine("Založeno: 1. dubna 1976, Cupertino, Kalifornie, USA");
                    Console.WriteLine("Generální ředitel: Tim Cook");
                    Console.WriteLine("Ústředí společnosti: Cupertino, CA, Spojené státy americké");
                    Console.WriteLine("Zakladatelé: Steve Jobs, Ronald Wayne, Steve Wozniak");
                    break;



                default:
                    Console.WriteLine("Zadaná firma neexistuje, není zohledněna v programu, nebo jste ji špatně napsali");
                    Console.WriteLine("Zkuste to zvonu");

                    break;
            }

            Console.ReadKey();
          }
        }
    }
}

Zadá google a vyjedou my informace ale jakmile ho zadám znova tak to napíše "Zadaná firma neexistuje" atd. Co je tam za chybu tentokrát?

 
Nahoru Odpovědět
26.10.2014 17:20
Avatar
Jan Vargovský
Tvůrce
Avatar
Odpovídá na hume638
Jan Vargovský:26.10.2014 17:56

Tak dej vstup "google" a "aaple", třeba ti pak docvakne proč.

 
Nahoru Odpovědět
26.10.2014 17:56
Avatar
gcx11
Tvůrce
Avatar
gcx11:26.10.2014 19:00

Strč si načítání vstupu do cyklu, takhle se ptáš na tu hodnotu jen jednou. A to

Console.ReadKey();

tam máš zbytečně. K ničemu není potřebné.

Editováno 26.10.2014 19:00
Akceptované řešení
+20 Zkušeností
+2,50 Kč
Řešení problému
 
Nahoru Odpovědět
26.10.2014 19:00
Avatar
gcx11
Tvůrce
Avatar
Odpovídá na hume638
gcx11:26.10.2014 19:00

Nedal jsem odpovědět.

 
Nahoru Odpovědět
26.10.2014 19:00
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 12 zpráv z 12.