Хотите улучшить этот вопрос? Обновите вопрос так, чтобы он вписывался в тематику Stack Overflow на русском.
Закрыт 2 года назад.
Не могу понять в чем ошибка? Необходимо что бы программа выводила на экран блюда которые можно приготовить из имеющихся ингредиентов
public class Loader {
public static void main(String[] args) {
int milkAmount = 200; // ml
int powderAmount = 5; // g
int eggsCount = 3; // items
int sugarAmount = 5; // g
int oilAmount = 30; // ml
int appleCount = 8;
boolean canNotDoAnything = false;
//powder - 400 g, sugar - 10 g, milk - 1 l, oil - 30 ml
if ((milkAmount >= 1000) && (powderAmount >= 400) && (sugarAmount >= 10) && (oilAmount >= 30)) ;
{
System.out.println("Pancakes");
boolean canNotDoAnything = true;
}
//milk - 300 ml, powder - 5 g, eggs - 5
if ((milkAmount >= 300) && (powderAmount >= 5) && (eggsCount >= 5)) ;
{
System.out.println("Omelette");
boolean canNotDoAnything = true;
}
//apples - 3, milk - 1000 ml, powder - 300 g, eggs - 4
if ((appleCount >= 3) && (milkAmount >= 100) && (powderAmount >= 300) && (eggsCount >= 4)) ;
{
System.out.println("Apple pie");
boolean canNotDoAnything = true;
}
if (canNotDoAnything == false) ;
{
System.out.println("Недостаточно ингридиентов для приготовления");
}
}
}
Уберите boolean
перед canNotDoAnything
во всех местах кроме первого.
И точку с запятой во всех if
строчках.
Ошибка в данном коде возникает на этапе компиляции. Вероятно, вы не используете интегрированную среду разработки. Иначе вы без труда бы ее обнаружили.
Ошибка в следующем. После объявления переменной boolean canNotDoAnything
больше нельзя указывать ее тип при следующих к ней обращениях. А вы это делаете каждый раз.
Еще в вашем коде есть логическая ошибка. После описания условия в блоках if
точку с запятой ставить не нужно. Иначе блок кода, идущий за if
будет считаться самостоятельным и выполнится в любом случае.
И одна ошибка смысловая. Булева переменная canNotDoAnything
судя по названию должна принимать значение false
, когда из имеющихся ингредиентов можно хоть что-нибудь приготовить. А у вас наоборот ;)
В итоге работающий код будет выглядеть вот так:
public class Loader {
public static void main(String[ ] args){
int milkAmount = 200; // ml
int powderAmount = 5; // g
int eggsCount = 3; // items
int sugarAmount = 5; // g
int oilAmount = 30; // ml
int appleCount = 8;
boolean canNotDoAnything = true;
//powder - 400 g, sugar - 10 g, milk - 1 l, oil - 30 ml
if (milkAmount >= 1000 && powderAmount >= 400 &&
sugarAmount >= 10 && oilAmount >= 30)
{
System.out.println("Pancakes");
canNotDoAnything = false;
}
//milk - 300 ml, powder - 5 g, eggs - 5
if (milkAmount >= 300 && powderAmount >= 5 && eggsCount >= 5)
{
System.out.println("Omelette");
canNotDoAnything = false;
}
//apples - 3, milk - 1000 ml, powder - 300 g, eggs - 4
if (appleCount >= 3 && milkAmount >= 100 &&
powderAmount >= 300 && eggsCount >= 4)
{
System.out.println("Apple pie");
canNotDoAnything = false;
}
if (canNotDoAnything)
{
System.out.println("Недостаточно ингредиентов для приготовления");
}
}
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Только начинаю постигать полезности тестированияПеречитал много ответов здесь и в гугле в целом, но ответа не нашел
Не получается задать относительный путьПосле создания артефакта (IDEA) при открытии сессии выводит ошибку: javax
В вузе задали задачу на java, подскажите как её решить? Или может какие-нибудь обучающие материалы о том, как решать подобныеДалее текст на английском: