(1 x shift) !~ /^1?$|^(11+?)\1+$/
(1 x shift) !~ /^1?$|^(11+?)\1+$/
sub p{$_[0],@_?p(grep$_%$_[0],@_):()}p 2..pop
for ( i = 2; i <= num; i++ ) { meetsCriteria[ i ] = true; } for ( i = 2; i * i <= num; i++ ) { if (! meetsCriteria [i]) { continue; } for ( int j = i * i; j <= num; j += i ) { meetsCriteria [j] = false; } } for ( i = 2; i <= num; i++ ) { if ( meetsCriteria[ i ] ) { System.out.println ( i + " meets criteria." ); } }
for (primeCandidate = 2; primeCandidate <= primeLimit; primeCandidate++) { isPrime [primeCandidate] = true; } for (int factor = 2; factor * factor <= primeLimit; factor++) { if (! isPrime [factor]) { continue; } for ( int factorableNumber = factor * factor; factorableNumber <= primeLimit; factorableNumber += factor ) { isPrime [factorableNumber] = false; } } for (primeCandidate = 2; primeCandidate <= primeLimit; primeCandidate++) { if (isPrime [primeCandidate]) { System.out.println (primeCandidate + " is prime."); } }
/* * Compute the square root of Num using the * Newton-Raphson approximation. */ r = num / 2; while (abs(r - (num / r)) > TOLERANCE) { r = 0.5 * (r + (num / r)); } System.out.println ("r = " + r);
// set product to "base"
product = base;
// loop from 2 to "num"
for (int i = 2; i <= num; i++) {
// multiply "base" by "product"
product = product * base;
}
System.out.println ("Product = " + product);
i++; // increment i
null
?unsigned
/***************************************\ * Tohle je sice hezky výrazný * * komentář, ale udržovat ho bude malá * * noční můra. * \***************************************/
Viz Effective Java: Programming Language Guide, Item 28.
Viz Effective Java: Programming Language Guide, Item 44.
public interface List<E> extends Collection<E> { /* ... */ /** * Returns the element at the specified position in this list. * * @param index index of element to return * @return the element at the specified position in this list. * @throws {@link IndexOutOfBoundsException} if the index is out of range * (<tt>{@literal index < 0 || index >= size()}</tt>). */ E get(int index); /* ... */ }
V Javě se na dokumentaci rozhraní používá nástroj JavaDoc. Programátor zapíše dokumentaci do speciálně označených a formátovaných komentářů, které JavaDoc projde a sestaví z nich dokumentaci v HTML.
Výhodou tohoto přístupu je, že dokumentace je pohromadě s kódem a hrozí tedy menší riziko jejího zastarání (kód bude aktualizován, ale dokumentace ne). Na druhou stranu, dokumentace zabírá v kódu dost místa a ztěžuje tak navigaci. Tento problém dnes naštěstí vcelku uspokojivě řeší různá vývojová prostředí.
Dokumentace v JavaDocu trpí značnou mírou byrokracie – např. kromě popisu metody je potřeba popsat zvlášť i její parametry, návratovou hodnotu a vyhazované výjimky, což udělá ze stručného neformálního komentáře na tři řádky poměrně dlouhý kus textu s redundancemi (zde např. popis metody a její návratové hodnoty). Pokud bychom popis některých prvků vynechali, objeví se ve vygenerované dokumentaci prázdné místo, což není moc pěkné. Příliš vhodné není ani použití HTML pro text komentáře, což vede k nutnosti escapování.
Byrokracie při psaní dokumentace vede k tomu, že psaní dokumentace je otravná činnost a programátoři ji tedy často nevykonávají, nejsou-li k tomu nuceni. Neformální komentáře by přitom možná napsali. Opět zde částečně pomáhají vývojová prostředí, která umí připravit šablonu dokumentačních komentářů.