abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×

dnes 17:55 | Komunita

Vývojáři Debianu oznámili, že od 1. listopadu letošního roku nebudou jejich archivy dostupné pomocí protokolu FTP. Již v lednu oznámil ukončení podpory FTP kernel.org (The Linux Kernel Archives).

Ladislav Hagara | Komentářů: 0
dnes 17:00 | Bezpečnostní upozornění

V oblíbeném webmailu postaveném na PHP SquirrelMail (Wikipedie) byla nalezena bezpečnostní chyba CVE-2017-7692, jež může být útočníkem zneužita ke spuštění libovolných příkazů a kompletnímu ovládnutí dotčeného serveru. Zranitelnost se týká pouze instancí, kde je pro transport používán Sendmail.

Ladislav Hagara | Komentářů: 0
dnes 13:11 | Zajímavý článek

Soudní dvůr Evropské unie rozhodl (tisková zpráva) ve věci C-527/15: Prodej multimediálního přehrávače, který umožňuje zdarma a jednoduše shlédnout na televizní obrazovce filmy protiprávně zpřístupněné na internetu, může představovat porušení autorského práva.

Ladislav Hagara | Komentářů: 13
včera 13:33 | Pozvánky

Byly stanoveny termíny konferencí LinuxDays 2017 a OpenAlt 2017. Letošní LinuxDays proběhne o víkendu 7. a 8. října v Praze v Dejvicích v prostorách FIT ČVUT. Letošní OpenAlt proběhne o víkendu 4. a 5. listopadu na FIT VUT v Brně.

Ladislav Hagara | Komentářů: 0
včera 11:11 | Komunita

Jiří Eischmann z desktopového týmu Red Hatu se v příspěvku Linuxový desktop: Co vám chybí na svém blogu ptá, co uživatele na Fedora Workstation a na linuxovém desktopu obecně trápí a co by desktopový tým mohl zlepšit. Pokud máte nějaké podněty, napište mu je do komentářů.

Ladislav Hagara | Komentářů: 70
včera 03:33 | Nová verze

Byla vydána nová verze 0.25.0 multimediálního přehrávače mpv (Wikipedie) vycházejícího z přehrávačů MPlayer a mplayer2. Z novinek lze zmínit například podporu DVB-T2. Další části mpv byly přelicencovány z GPLv2 nebo novější na LGPLv2.1 nebo novější (#2033).

Ladislav Hagara | Komentářů: 0
včera 02:22 | Zajímavý projekt

Na Bundle Stars byla spuštěna akce Dollar Forever Bundle. Za 1 dolar lze získat 24 počítačových her bežících na platformě Steam také v Linuxu.

Ladislav Hagara | Komentářů: 2
24.4. 23:44 | Zajímavý software

Lychee je jedním z open source softwarů pro tvorbu webových fotoalb. Vyžadováno je PHP 5.5 nebo novější a MySQL. Ukázka na stránkách projektu. Zdrojové kódy jsou k dispozici na GitHubu pod open source licencí MIT [reddit].

Ladislav Hagara | Komentářů: 6
24.4. 22:22 | Zajímavý software

Společnosti Haivision a Wowza společně oznámily vznik SRT Alliance a otevření protokolu pro streamování videa SRT. Podrobnosti v FAQ. Zdrojové kódy SRT jsou k dispozici na GitHubu pod open source licencí LGPLv2.1.

Ladislav Hagara | Komentářů: 0
24.4. 12:33 | Humor

Byl vydán remake filmu Ghost in the Shell. Tentokrát v Bashi. Zhlédnout lze online na "ssh ghost@theshell.xyz" [Hacker News].

Ladislav Hagara | Komentářů: 16
Chystáte se pořídit CPU AMD Ryzen?
 (4%)
 (34%)
 (1%)
 (6%)
 (45%)
 (10%)
Celkem 309 hlasů
 Komentářů: 44, poslední dnes 17:15
    Rozcestník
    Štítky: není přiřazen žádný štítek

    Dotaz: Ukončení cyklů

    17.2.2014 21:16 Jakubysko
    Ukončení cyklů
    Přečteno: 235×
    Ahoj, jak vyskočit ze dvou cyklů? Potřebuji vyskočit z toho vnořeného. Díky while true do while true do break break done done

    Odpovědi

    17.2.2014 21:33 Carth_Onasi
    Rozbalit Rozbalit vše Re: Ukončení cyklů

    První věc - jak to souvisí s Unixem nebo Linuxem?

    Druhá věc - má to být ... do break done break done

    Třetí věc - while true je cesta do pekel

    Čtvrtá věc - dělá se to tak, že nadefinuješ proměnu (např. konec = false), pak ve vnitřním cyklu pro ukončení nastavíš konec na true a ve vnějším cyklu to testuješ - to jsou základní programovací techniky.
    18.2.2014 08:25 potato
    Rozbalit Rozbalit vše Re: Ukončení cyklů
    while true je cesta do pekel
    Cykly s podmínkou ukončení uprostřed nepřestanou být užitečné jen proto, že se ti nelíbí. A v jazycích, které nemají cykly s podmínkou na konci (shell, Python, ...), je while-true často nejelegantnější/nejpraktičtější způsob, jak cyklus realizovat.
    18.2.2014 15:24 Andrej | skóre: 43 | blog: Republic of Mordor | Zürich
    Rozbalit Rozbalit vše Re: Ukončení cyklů
    Třetí věc - while true je cesta do pekel

    To řekl kdo? Nejčastěji to slýchám od lidí, kteří nikdy neprogramovali. Opak je pravdou — cyklus, který testuje podmínku někde uprostřed, je leckdy elegantnější a efektivnější než zoufalá snaha vyjádřit totéž ve formě cyklů s podmínkou a krokem v těsném sousedství. Nestandardní typy cyklů začnou být dvojnásob užitečné ve chvíli, kdy cyklus závisí na dvou různých ukončovacích podmínkách, které mohou nastat nezávisle na sobě.

    Čtvrtá věc - dělá se to tak, že nadefinuješ proměnu (např. konec = false), pak ve vnitřním cyklu pro ukončení nastavíš konec na true a ve vnějším cyklu to testuješ - to jsou základní programovací techniky.

    Co je tohle za hovadinu? Prasárny tohoto typu vedou k tvorbě kódu, který je neefektivní (což nemusí nutně vadit, ale cosi to vypovídá o programátorských kvalitách autora) a velmi nepřehledný (což vadí po všech stránkách).

    Tazatel se ptal, jak vyskočit ze dvou vnořených cyklů — předpokládám, že v shellu, když se ptá na linuxové poradně. Odpověď je jednoduchá: bash i dash (a možná i jiné shelly) mají příkaz break s číselným parametrem. Číselný parametr má implicitně hodnotu 1, tedy break bez parametru vyskočí z nejbližšího cyklu nebo selectu. Hodnota 0 znamená, že se nikam nevyskakuje a vrátí se 0 (úspěch). Hodnota větší než 1 vyskakuje z vnořených cyklů.

    Odpověď na původní otázku by asi byla break 2. (A vůbec není nutné vymýšlet fantasmagorie o tom, jak by se údajně mělo či nemělo programovat.)

    ǑǦŹǓǕǙǞǺǨȞȬḔḦḰḾṊṎṸẄẌỖ
    LangPa avatar 17.2.2014 23:21 LangPa | skóre: 12 | blog: LangPavel | Hradec Králové
    Rozbalit Rozbalit vše Re: Ukončení cyklů
    1) goto je taky cesta do pekel ale funguje.

    2) jaký jazyk? Některé umožňují, tuším, napsat break 2
    17.2.2014 23:34 cronin | skóre: 48
    Rozbalit Rozbalit vše Re: Ukončení cyklů
    ... iné umožňujú pomenovať slučku návestím, aby bolo následne z vnútorného cyklu brejknúť ten vonkajší.

    Inak povedané: ak chce opytujúci sa lepšiu odpoveď, mal by lepšie sformulovať otázku.
    18.2.2014 11:16 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
    Rozbalit Rozbalit vše Re: Ukončení cyklů
    Přijde na to v jakém jazyku.
    První a druhý příklad lze realizovat ve většině (včetně bash-e).
    Třetí příklad je nepěkný a někde jsem četl, že je ospravedlnitelný pokud je těch cyklů roj (pokud by to mělo být jediné goto v kódu, tak bych ho neospravedlnil :)).
    /* gcc -W -pedantic loop.c -o loop */
    #include <stdlib.h>
    #include <stdio.h>
    
    int main( int arc, char **argv ) {
      int breakit;
      int doit;
    
      /*an example */
      printf("\nExample 1:\n");
      breakit = 0;
      while(1){
        printf("1st loop\n");
        while(1){
          printf("2nd loop\n");
          if(1==1){
            printf("Cond. to break all loops, break 2nd loop\n");
            breakit=1;
            break;
          }
        }
        if(breakit==1){
          printf("Break 1st loop\n");
          break;
        }
      }
    
      /*an better example */
      printf("\nExample 2:\n");
      doit = 1;
      while(doit){
        printf("1st loop\n");
        while(doit){
          printf("2nd loop\n");
          if(1==1){
            printf("Cond. to break all loops, break 2nd loop\n");
            doit=0;
            break;
          }
        }
      }
    
      /*Do not recomended */
      printf("\nExample 3:\n");
      while(1){
        printf("1st loop\n");
        while(1){
          printf("2nd loop\n");
          if(1==1){
            printf("Cond. to break all loops, goto (to) loopsend: \n");
            goto loopsend;
          }
        }
      }
      loopsend:
    
      return 0;
    }
    
    
    Některé jazyk jako třeba Java může mít něco takovéhoto (netestováno.)
     class JavaLoop{
        public static void main(String[] args){
          System.out.print("\nExample 1:\n");
          topouter:
          while(true){
            System.out.print("1st loop\n");
            while(true){
              System.out.print("2nd loop\n");
              if(1==1){
                System.out.print("Cond. to break all loops, break with label\n");
                break topouter;
              }
            }
          }
          return 0;
        }
      }
    
    To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†

    Založit nové vláknoNahoru

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.