Я понимаю, что переменная, объявленная в блоке существует только до конца этого блока.
В связи с этим вопрос, как же после цикла воспользоваться переменной, если цикл ничего не возвращает, а переменная уничтожается?
В данном примере
1. переменную min инициализирую в теле main (по логике она видна во всем классе).
2. в цикле пробегаю по всем значениям и самое минимальное сохраняю в переменную min.
3. Выхожу из условия if и цикла for и тут получается переменная min уже не та что в цикле, а та что в классе. Т.к. IDEA такое г даже компилить отказывается. В чем я не прав? И как в таком случае воспользоваться результатом цикла?
Заранее спасибо!
package com.javarush.task.task04.task0441;
/*
Как-то средненько
*/
import java.io.*;
public class Solution {
public static void main(String[] args) throws Exception {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String s1 = reader.readLine();
String s2 = reader.readLine();
String s3 = reader.readLine();
String sp = " ";
int a = Integer.parseInt(s1);
int b = Integer.parseInt(s2);
int c = Integer.parseInt(s3);
// ПЕРЕБРОСИЛ ВВЕДЕННЫЕ ЗНАЧЕНИЯ В МАССИВ
// ЧТОБ ПРОБЕЖАТЬ ПО НЕМУ ЦИКЛОМ
int[] arr = {a, b, c};
//РЕШАЮ МЕТОДОМ ПОИСКА min, max.
//ЗАТЕМ ВЫВОЖУ ТО ЧТО ОСТАЛОСЬ
int min;
int mid;
int max;
//ПОИСК МИНИМУМА
for (int i = 0; i < arr.length; i++) {
if (arr[i] <= a && arr[i] <= b && arr[i] <= c) {
min = arr[i];
}
i++;
}
//ПОИСК МАСКСИМУМА
for (int i = 0; i < arr.length; i++) {
if (arr[i] >= a && arr[i] >= b && arr[i] >= c) {
max = arr[i];
}
i++;
}
//ПОИСК ЧИСЛА МЕЖДУ НИМИ
mid = a + b + c - min - max;
//ВЫВОД НА ЭКРАН РЕЗУЛЬТАТА
System.out.println(mid);
}
}