Фактически переменные указывают на области памяти, значения которых могут быть изменены в пределах их области видимости. Поэтому, когда 180 присваивается переменной веса, оно переопределяет предыдущее значение в памяти, и теперь оно имеет 180 вместо 195 при вычислении ИМТ во второй раз. Простой пример для понимания
double val = 25;
System.out.println(val); //It will print 25
val = 80; //will override 25 and after the execution of this line val will have 80 not 25
System.out.println(val); //It will print 80
val = 60; //changing again
System.out.println(val); //It will print 60
Каждый раз, когда вы изменяете значение переменной, оно теряет предыдущее значение, и оно будет иметь последнее назначенное вам значение.