Avatar
hume638
Člen
Avatar
hume638:

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ý
Redaktor
Avatar
 
Nahoru Odpovědět 26.10.2014 15:26
Avatar
hume638
Člen
Avatar
hume638:
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ý
Redaktor
Avatar
Odpovídá na hume638
Jan Vargovský:
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:

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
Redaktor
Avatar
Odpovídá na hume638
Gramli:

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:

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ý
Redaktor
Avatar
Odpovídá na hume638
Jan Vargovský:

Čí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:

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ý
Redaktor
Avatar
Odpovídá na hume638
Jan Vargovský:

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

 
Nahoru Odpovědět 26.10.2014 17:56
Avatar
gcx11
Redaktor
Avatar
gcx11:

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í
+1 bodů
Řešení problému
 
Nahoru Odpovědět 26.10.2014 19:00
Avatar
gcx11
Redaktor
Avatar
Odpovídá na hume638
gcx11:

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.