Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno c++ - vrátit se na začátek funkce

Dobrý den, tak bych Vám popsal co potřebuji, použiju příklad.

Příklad:
Dejme tomu že uživatel má zadat číslo menší než 10.
Potřeboval bych, aby když zadá číslo větší než 10, vrátí se to zase na začátek funkce.
(Jestli mi rozumíte, vytiskne se zpráva: zadej čislo menší než 10: , já zadám 15 a vytiskne mi to: Tohle číslo je větší než 10, a vrátí se to na začátek funkce, tj. znovu mi to vytiskne: zadej čislo menší než 10:, takhle až do nekonečna, dokud nezadám číslo menší než 10 :-) .

Asi nějak takhle:

cout << "Zadej cislo mensi nez 10: ";
cin >> cislo;

if (cislo < 10)
  {
      cout << "\nsuper, je mensi nez 10";
  }

else
  {
     cout << "Chyba, cislo je vetsi nez 10\n"; 
     Tady potrebuju, aby se to vratilo zpatky na zacatek k: cout << "Zadej....
  }
return 0;

Jestli to nějak jde, prosím poraďte Mi, Děkuji.
Zmena predmetu, pôvodne: c++ (los)

Předmět Autor Datum
Cyklus do-while.
Wikan 02.09.2011 12:53
Wikan
Jo, díky moc :)
Swix 02.09.2011 13:11
Swix
Jen pro rozšíření obzorů - šlo by to udělat i pomocí goto, ale je to jedno. Pak by to vypadalo asi t…
marekdrtic 02.09.2011 13:24
marekdrtic
Buď opatrný pri používaní goto. :-)
los 02.09.2011 17:28
los
Neni to jedno napr. kvoli citatelnosti a rychlej pochopitelnosti a udrzatelnosti kodu napr. ze s cyk…
MM.. 02.09.2011 18:03
MM..
Jo, já goto používám kvůli tomu, že dělám hlavně s PIC16F a PIC18F, programuju to v céčku a chci uše…
marekdrtic 02.09.2011 18:19
marekdrtic
bez goto by si to zacykleny mozno nemal nikdy :-) Mozes garantovat ze sa to nezacykli v nejakej situ…
MM.. 02.09.2011 18:33
MM..
No tak jak to tady čtu, tak radši zůstanu u do-while, goto jsem si zkusil a funguje to opravdu uplně… poslední
Swix 02.09.2011 21:33
Swix

Jen pro rozšíření obzorů - šlo by to udělat i pomocí goto, ale je to jedno. Pak by to vypadalo asi takhle:

start:

cout << "Zadej cislo mensi nez 10: ";
cin >> cislo;

if (cislo < 10)
  {
      cout << "\nsuper, je mensi nez 10";
  }

else
  {
     cout << "Chyba, cislo je vetsi nez 10\n"; 
     goto start;
  }
return 0;

Neni to jedno napr. kvoli citatelnosti a rychlej pochopitelnosti a udrzatelnosti kodu napr. ze s cyklom hned vidis ze sa ti tam nieco cykli, s goto nevidis hned nic. Ked goto pouziva debil, tak vznikne neudrzatelny maglajz (ale ten vznikne stejne, aj ked debil goto nepouziva :D).
However,

Some programmers, such as Linux Kernel designer and coder Linus Torvalds or software engineer and book author Steve McConnell also object to Dijkstra's point of view, stating that GOTOs can be a useful language feature, improving program speed, size and code clearness, but only when used in a sensible way by a comparably sensible programmer.

s cim sa da suhlasit, ale nejaky zaciatocnik toto nesplna tak by som mu ani goto neradil.
P.S. fungovat to samozrejme bude aj s goto.

Jo, já goto používám kvůli tomu, že dělám hlavně s PIC16F a PIC18F, programuju to v céčku a chci ušetřit tolik místa v ROM, co se dá, každej bajt se počítá :-). Navíc mám na vývojový desce i ICD, takže když to mám zacyklený, hned to pomocí ICD najdu. Teď zrovna dělám větší projekt a zatím jsem tam goto použil asi 4x nebo 5x, víckrát asi ne.

bez goto by si to zacykleny mozno nemal nikdy :-) Mozes garantovat ze sa to nezacykli v nejakej situacii (nejaky neobvykly vstup), ktora nastane napr. raz za rok? Alebo to zdebugujes? (pojdes k zakaznikovi a budes rok cakat kym sa to zacykli :)
Setrenie miesta chapem, ale zvycajne sa to da aj bez goto ked clovek dokonale pozna compiler (ja som kedysi davno na uC ked som si nebol isty co je optimalnejsie pozeral disassemblerom skompilovany kod aby som zistil ze co kompiler urobi optimalnejsie :) Goto nemusi byt najoptimalnejsie, prave naopak ptz ak sa pouzije goto tak moze mat compiler problem robit maximalne optimalizacie strojoveho kodu. Vo vynimocnych pripadoch sice moze byt aj goto uzitocne, stejne jak moze byt vo vynimocnych pripadoch uzitocne urobit nieco rovno v assembleri :) Ale v drvivej vacsine pripadov to neplati ;)

No tak jak to tady čtu, tak radši zůstanu u do-while, goto jsem si zkusil a funguje to opravdu uplně stejně, chtěl bych se zeptat, čtu knihu Naučte se programovat za 21 dní, pak mám v plánu koupit si Mistrovství v c++, doporučili byste mi ještě nějakou jinou literaturu z které bych později mohl čerpat?
Tzn. nevím jaké budu mít znalosti/zkušenosti po dočtení těchto dvou knih.
Díky

Zpět do poradny Odpovědět na původní otázku Nahoru