Живот на променлива { Variable scope }
Здравейте колеги.
Въпросът ми е какво е предимството от това една променлива да бъде инициализирана в тялото на цикъл? Като се инициализира в цикъл, не трябва ли на всяка итерация да се запазва и освобождава памет, което предполагам забавя програмата? Ето един пример: Задачата е Magic Numbers. Тук променливата "о" е в най-вътрешния цикъл и отговаря за последната цифра на 6-цифрено число. Животът й започва и завършва с всяка итерация на променливата "m", която пък по същия начин зависи от предния итератор "l" и така до "i". Не би ли било по-добре всички итератори да се декларират предварително, за да няма нужда от хиляди запазвания и освобождавания на памет? Ако ставаше въпрос за променлива, която не е примитивен тип данни? Също така искам да попитам дали има начин да виждам колко памет и време е било израсходвано при екзекуция на код, за да няма нужда да питам подобни въпроси в бъдеще.
Scanner console = new Scanner(System.in);
int n = Integer.parseInt(console.nextLine());
for (int i = 1; i <= 9; i++) {
for (int j = 1; j <= 9; j++) {
for (int k = 1; k <= 9; k++) {
for (int l = 1; l <= 9; l++) {
for (int m = 1; m <= 9; m++) {
for (int o = 1; o <= 9; o++) {
if (i * j * k * l * m * o == n) {
System.out.printf("%d%d%d%d%d%d ", i, j, k, l, m, o);
}
}
}
}
}
}
}