JavaRush/Курсы/Курс "Программирование под Андроид"/Отрицательное количество чашек кофе

Отрицательное количество чашек кофе

Открыта

Обратите внимание, что нам нужно такое условие, которое будет истиной, когда количество чашек кофе не должно изменяться.

Подсказка: Ключевое слово “return” можно поставить внутри блока if, чтоб прекратить выполнение метода досрочно. Прочтите самый популярный ответ в этой ветке портала StackOverflow.

Свои ответы и вопросы можете оставлять в комментариях.

Комментарии (19)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Эшли
Уровень 10
20 апреля 2022, 21:32
При генерации всплывающего сообщения, пожалуйста, не забывайте указывать toast.show();
Эшли
Уровень 10
20 апреля 2022, 21:29
Хотите простое решение? Я просто скрыл кнопку минус, если значение quantity меньше 1 xD Ты не можешь установить отрицательное значение, если нет кнопки xD
Name Unknown ;)
Уровень 2
4 февраля 2021, 16:51
Здесь активно используется Toast, а в одном из комментов упомянули SnackBar. Расскажу здесь о разнице между ними и оставлю несколько ссылок (во втором комменте), чтобы легче было сориентироваться в этой теме, на удивление объёмной и даже в чём-то научной. Для начала сравнение из первой ссылки: Toast: был добавлен в API Level 1 В основном работа не требуется (может отображаться как бы "над" приложением) Он не может выполнять действие, основанное на пользовательском вводе Он не может быть отклонен путем прокрутки Он не может обрабатывать ввод пользователя, например, Swipe, Click и т.д. SnackBar добавили в API 23 Он может отображаться внутри действия приложений Он может выполнять действие Это может быть отклонено путем прокрутки Он может обрабатывать ввод пользователя Хорошо показывать сообщения типа предупреждения/информации пользователю, которому требуется внимание. Использование SnackBar: Он может использоваться в тех областях, где необходимо отображать всплывающее сообщение с возможностью выполнения действий. Пример: в GMail при удалении почты быстрый экран SnackBar внизу с сообщением ("1 удалено кнопкой действия" Отменить). При нажатии кнопки "Отменить" удаленная почта будет восстановлена. Использование Toast: Может использоваться в тех областях, где необходимо отображать сообщения системы.
Name Unknown ;)
Уровень 2
4 февраля 2021, 17:09
🦔 Викторведу учебный тг-канал в t.me/JavangelionExpert
2 декабря 2020, 09:24
1. В методе инкремента и декремента сначала поставить проверку, например, Если кол-во чашек меньше ста, то тогда увеличить на одну, Иначе тост с предупреждением. 1.1. Можно ещё тернарным оператором побаловаться:
display(quantity > 0 ? --quantity : 0);
2. Можно легко создать тост а андроид студии — начинаем писать Toast и IDE предлагает за нас сгенерить готовый каркас, в который остаётся вставить только аргументы (текст и продолжительность). 3. Всё получится!
Аслан Кашиев
Уровень 1
21 апреля 2020, 15:39
Сначала пытался вызвать метод makeText у переменной toast, код компилировался, но при нажатии приложение падало. Затем осознал ошибку, надо к просто присвоить переменной toast вызов статического метода Toast.makeText(...)
//Неправильно
toast.makeText(getApplicationContext(), "Невозможно заказать меньше 1 чашки", Toast.LENGTH_SHORT);
//Правильно
toast = Toast.makeText(getApplicationContext(), "Невозможно заказать меньше 1 чашки", Toast.LENGTH_SHORT);
Anatoliy
Уровень 10
7 июля 2020, 21:06
Toast.makeText(getApplicationContext(),"Извините,количество не может быть меньше 1 ",Toast.LENGTH_SHORT ).show();
Очень даже неплохо работает
Name Unknown ;)
Уровень 2
4 февраля 2021, 15:33
У тебя в пункте "неправильно" весь прикол в том, что первая буква маленькая, а должна быть большая. В таком случае можно было спокойно писать без присвоения переменной так, как написано в соседнем комменте у Anatoliy. Ничего страшного, в кодинге очень сложно с избеганием появления "туннельного зрения" или "зашоренности" (видели такие штуки у лошадей, у глаз по бокам? это "шоры"), когда даже слона не видишь.
Richard Winter
Уровень 12
4 апреля 2019, 07:46
/*Формируем метод с сообщением*/
public void showTooManyCupsToast() {
    Toast tooManyCupsToast = Toast.makeText(getApplicationContext(),
            "Вы не можете заказать больше 100 чашек", Toast.LENGTH_SHORT);
    tooManyCupsToast.show();
}

/*Формируем метод с сообщением*/
public void showTooLittleCupsToast() {
    Toast tooLittleCupsToast = Toast.makeText(getApplicationContext(),
            "Вы не можете заказать меньше 1 чашки", Toast.LENGTH_SHORT);
    tooLittleCupsToast.show();
}
/*Кнопка увеличения*/
 public void increment(View view) {
     if (quantity <= 99){
         quantity = ++quantity;
     }else {showTooManyCupsToast();}
     display(quantity);
     /*display(quantity <= 99? ++quantity : quantity);*/
 }

 /*Кнопка уменьшения*/
 public void decrement(View view) {
     if (quantity <= 1){
         showTooLittleCupsToast();
     }else {quantity = --quantity;}
     display(quantity);
     /*display(quantity <= 1? quantity : --quantity);*/
 }
Тимур
Уровень 23
30 сентября 2018, 17:23
Тут все сделано, еще добавил немного наворотов
24 января 2018, 18:23
Я сделала так:
* Этот метод вызывается, когда нажимают кнопку "+"
 */
public void increment(View view) {
    quantity = quantity + 1;
    if (quantity > 100) {
        quantity = 100;
        Toast.makeText(this,"Нельзя заказать больше 100 чашек", Toast.LENGTH_SHORT).show();
    }
    displayQuantity(quantity);
}

/**
 * Этот метод вызывается, когда нажимают кнопку "-"
 */
public void decrement(View view) {
    quantity = quantity - 1;
    if (quantity < 1) {
        quantity = 1;
        Toast.makeText(this,"Нельзя заказать меньше 1 чашки", Toast.LENGTH_SHORT).show();
    }
    displayQuantity(quantity);
}
Но в решебнике предлагают это:
/**
   * This method is called when the plus button is clicked.
   */
  public void increment(View view) {
      if (quantity == 100) {
          // Show an error message as a toast
          Toast.makeText(this, "You cannot have more than 100 coffees", Toast.LENGTH_SHORT).show();
          // Exit this method early because there's nothing left to do
          return;
      }
      quantity = quantity + 1;
      displayQuantity(quantity);
  }

  /**
   * This method is called when the minus button is clicked.
   */
  public void decrement(View view) {
      if (quantity == 1) {
          // Show an error message as a toast
          Toast.makeText(this, "You cannot have less than 1 coffee", Toast.LENGTH_SHORT).show();
          // Exit this method early because there's nothing left to do
          return;
      }
      quantity = quantity - 1;
      displayQuantity(quantity);
  }
Программирование - это как перевод от разных переводчиков: суть та же, но слова разные))
25 февраля 2018, 16:29
Юлия, у Вас избыточная строка в коде, которая сбивает с толку на самом деле... чуть позже вы поймете почему, но в целом Ваш код читаем и хорошо написан
if (quantity > 100) {
        quantity = 100;
Name Unknown ;)
Уровень 2
4 февраля 2021, 15:28
Для остальных поясню: Обратите внимание на то, где у Юлии и в решебнике расположены строки quantity = quantity + 1; и quantity = quantity - 1; У Юлии они перед проверкой находятся, а в решебнике - после условия. Второй способ для новичков и правда неочевиден, но зато он позволяет обойтись без такого: if (quantity > 100) { quantity = 100; //я про эту строчку Т.к. если сначала условие проверяется и получится true, то до строчки quantity = quantity + 1; дело попросту не дойдёт, благо в условии if поставили return. В общем, учимся и офигеваем дальше =)))
Roman
Уровень 10
10 октября 2017, 20:19
Ну и намаялся с заданием на пятёрку (всплывающее окно). Оказывается в eEmpty Activity эта функция по умолчанию не подключена. Как подключать читаем тута - https://metanit.com/java/android/4.14.php
Vlad
Уровень 8
22 октября 2017, 16:48
А почему не с помощью Toast ?
8 августа 2017, 02:24
Можно заблокировать через кнопки когда один и меньше блокировать минус, когда 100 и больше блокировать плюс.При случайном перескоке сбрасывать на крайнее положение. Тогда только программист сможет перейти за границы. Ну и конечно проверять эти значения в самом заказе, на всякий случай
AndSky
Уровень 1
9 ноября 2017, 13:00
Нужно сделать и блокировку, и всплывающее сообщение. пишем Toast, в студии всплывает подсказка create new Toast, нажимаем на неё, и все готово: Toast.makeText(this, "Нельзя меньше", Toast.LENGTH_SHORT).show();
30 ноября 2017, 18:47
Зачем блокировать, можно указать в условии, если кол-во больше 100, то кол-во равно 100. Если кол-во меньше 1, то кол-во равно 1 Вот кусок для плюса
quantity++;
        if(quantity > 100){
            quantity = 100;
        }
Panda
Уровень 7
15 января 2018, 16:32
вот вот. давно так делал. все гениальное просто))