## Oddělená deklarace, inicializace a použití
```java bad-code stretch
// declare all variables
int accountIndex;
double total;
boolean done;
// initialize all variables
accountIndex = 0;
total = 0.0;
done = false;
...
// code using accountIndex
...
// code using total
...
// code using done
while (!done) {
...
```
## Deklarace a inicializace blízko místa použití
```java good-code stretch
int accountIndex = 0;
// code using accountIndex
...
double total = 0.0;
// code using total
...
boolean done = false;
// code using done
while (!done) {
...
```
Note:
Inicializace proměnných na jednom místě vytváří dojem, že se všemi
proměnnými se pracuje po celou dobu. Přitom např. proměnná `done` se
používá až na konci. Než se začne vykonávat kód, který proměnnou `done`
používá, mohla být proměnná (chybně) změněna. Navíc při změně programu
(už jen kvůli ladění) může dojít k přidání cyklů okolo kódu, který proměnnou
`done` používá a ta pak bude správně inicializována pouze jednou.