

C# - ukoncovani cyklu
Ahoj. Kdyz v cyklu nacitam napr. cela cisla do pole a chci ho ukoncit nejakou dohodnutou kombinaci naprd. stisk ENTER, jak to udelam aby mi program nespadnul? Kdyz ENTER je vlastne znak a ne cele cislo... dekuji.
const string QUIT = "";
bool konecNacitani = false;
int[] pole = new int[50];
int i = 0;
while (!konecNacitani)
{
Console.Write("Zadej cislo: ");
pole[i] = Int32.Parse(Console.ReadLine());
if (pole[i] == QUIT)
konecNacitani = true; i++;
}
Tak asi tak... A ten cyklus potrebuju jednoduse ukoncit ENTREM...
toto je klasicka konzolova aplikacia. na ukoncenie pouzi CTRL+Z, obdoba CTRL+D v unixoch.
me nejde o ukonceni programu, ale cyklu... zajima me, jak se to ukonci klavesou ENTER... dekuji
vsak tu to mas napisane:
predpokladam ze konstanta QUIT je prave char CTRL+Z. vsak mas problem to prelozit a odskusat? popripade debuggovat?
pole[i] je int, QUIT je string "", ma ho zadefinovany hore.
CTRL-Z nemusis porovnavat v programe, to robi OS.
P.S. suhlas s tym, ze nech si to zdebuguje
aha, ten definovany QUIT som si nevsimol. myslel som, ze to je preddefinovana konstanta.
jo teraz som si uvedomil - oprava: nie ctrl-z ale ctrl-c robi OS. ctrl-z musi testovat program ak to chce testovat, tusim je to ASCII 0x1A ale to mu asi ta metoda nevrati v stringu, na ctrl-z nech radsej zatial zabudne.
V C# nemôžeš porovnávať reťazec s číslom - taký program nejde ani skompilovať.
Ak to píšeš pre .NET 1.1, tak by som to napísal nejako takto:
Ak to píšeš pre .NET 2.0, tak by to mohlo vyzerať rovnako alebo nejako takto:
DEKUJI
Konecne nekdo, kdo nema reci jen "okolo" a vlastne netusi o co jde, ale i temto lidem dekuji, ze se aspon ozvali...
Ty si vazne dement.
este nas aj z*ebe.

btw., cital si? - http://pc.poradna.net/flash/view/61-zabezpecte-si-s voj-web-local-file-inclusion-lfi
Pekne, to vazne niekto pouziva include(nieco dynamicke)? :-o
podla autora aj imageshack.us.
Jak ho mam testovat pred tim... divil by ses kolik casu jsem uz nad tim vsim stravil...
Snad zadam cislo, nactu do pameti a az pak ho muzu testovat, jestli to je ten ENTER nebo ne... Spis by to chtelo v te podmince if nejake pretypovani myslim.
Ty nezadas cislo, ale string a prevadzas ho v tvojom programe na cislo funkciou Parse.
je mi uplne jasne ze si ten program nenapisal sam kedze ani netusis co v tych 4riakoch je, a zas len opisujes. Naco sa vobec C# ucis ked o tom nemas a hlavne ani nechces mat ani paru?
los ti napisal to co som ti pisal, plus to trochu zelegantnil...
Dej mi sem mail, nebo ICQ a ja ti sem hodim na cem delam... a treba mi uveris, ze jsem to udelal sam... Pred tydnem jsem presel z C na C#, tak v tom mam trosicku bordel, ve stredu tu praci mam odevzdat... vsechno resim sam, nic neopisuju a uz jsem z toho unavenej, takze hledam pomoc tady kdyz nevim...
ok, tak sa ti to pokusim vysvetlit, snad ti to pomoze dalej.
Vsetko co pise uzivatel do konzoly je znakovy retazec (string) aj ked tam napises len cisla, vzdy je to string.
Tento string ti vrati funkcia Console.ReadLine(), a z toho potom prvy losov riadok
potom si otestujes ten string, tam si mozes testovat co chces, otestovat to s na prazdny string, alebo ako to robil los skusis to previest na cislo, bud tym ze testujes vynimku (try - catch) alebo cez TryParse. Ak prevod na cislo neklapne tak to nie je cislo a ukoncis cyklus (break alebo si nastavis tu premennu konecNacitani).
Mal som pocit ze to co pisem ti musi stacit a ze je to trivialne. Nauc sa aj hladat si informacie, je to dost potrebne (programovat bez informacii o kniznicnych funkciach alebo o API je nemozne), staci do google alebo do msdn.microsoft.com zadat nazov fcie o ktorej chces popis alebo v msdn si pozriet skupiny fcii.
Tiez by bolo dobre pouzivat debugger, mas v tvojom vyvojovom prostredi nejaky debugger?
Mam Visual Studio 2005 ze skoly... Ale v nemuzu ten dubugger prave spustit. V Cecku mi to krasne chodilo, dival jsem se do pameti, mel jsem prehled co kde je ulozene, jenze ted prechazime na objektove orientovane programovani a ja nevim...
S tym debuggerom neviem co mas za problem, mas v nastaveniach projektu ze to ma byt aj s debug informaciami? (ani neviem ci to je tiez u C#). Ked si v projekte tak si skus kliknut na debug - start, nieco to vypise?
dufam ze som ta moc neodradil, hlavne treba chapat co je v programe (ak mas odniekial nejaku funkciu ako napr. to Console.ReadLine() tak si pozri co to robi, staci zadat Console.ReadLine do google, treba ale anglictinu).