Можно ли "вытащить" результат переменной типа "int" из цикла for в java(если да, то как)?
public class Praktikum {
public static void main(String[] args) {
int money = 500; // Деньги на корм
int foodPerDay = 100; // Стоимость пачки корма
int days = 0; // Дни, когда вы сможете покупать корм
for(int i = money; (i-foodPerDay) > 0; i = i - foodPerDay) // Здесь опишите цикл, начинаем с 500 рублей
for(int d = days; foodPerDay == money; d = d + 3) { // Здесь отразите, что вы будете покупать корм каждые три дня
System.out.println("На " + (d + 3) + "-й день останется " + (i - 100) + "рублей");// Опишите строку вывода
}// Цикл оканчивается здесь
System.out.println("Денег хватит на " + d + " дней.");
}
}
Ругается на строчку System.out.println("Денег хватит на " + d + " дней.");, пишет "cannot find symbol" и указывает на переменную d.
Ответы (2 шт):
Автор решения: Egor
→ Ссылка
Вы пытаетесь обратиться к переменной за ее областью видимости.
Переменная объявлена в цикле и "видна" только в в его пределах.
Достаточно объявить d до цикла:
int d = days;
for(; foodPerDay == money; d = d + 3) {
...
}
Автор решения: Nick Alexandr
→ Ссылка
Вот рабочий вариант:
public class Praktikum {
public static void main(String[] args) {
int money = 500; // Деньги на корм
int foodPerDay = 100; // Стоимость пачки корма
int days = 0; // Дни, когда вы сможете покупать корм
for(int i = money; (i-foodPerDay) >= 0; i = i - foodPerDay) {
days = days + 3; // Здесь опишите цикл, начинаем с 500 рублей
// Опишите строку вывода
System.out.println("На " + days + "-й день останется " + (i - 100) + " рублей");
}// Цикл оканчивается здесь
System.out.println("Денег хватит на " + days + " дней.");
}
}