Урок 9. Операторы в Java

В 99% наших с вами приложений придётся изменять значение переменной. Вот список, пожалуй, самых востребованных операторов, позволяющих нам манипулировать данными, хранящимися в переменной:

  • Присваивания (=) – присваивает левой части выражения значение, хранящееся в правой части выражения. Например, hiScore = score. В hiScore будет записано значение, которое хранится в score.
  • Сложение (+) – эта операция известна нам со школьной доски. Обычно используется вкупе с операцией присваивания, например score = score + 100; Заметьте, что абсолютно допустимо использовать одинаковые переменные по обеим сторонам операции. В нашем примере в score будет записано новое значение, которое получится после операции score + 100.
  • Вычитание (-) – операция вычитания также обычно используется вместе с операцией присваивания, например lives = lives – 1;
  • Деление (/) – делим число слева на число справа. fairShare = numSweets / numChildren;
  • Умножение (*) – умножаем числа, например answer = 10 * 10 * 10;
  • Инкремент (++) – изящный способ добавить единичку (1) к значению переменной. Например myVariable = myVariable + 1 – это тоже самое, что и myVariable++;
  • Декремент (—) – отнимаем единичку от значения переменной. Например myVariable = myVariable — 1 – это тоже самое, что и myVariable—.

Формально, название некоторых из этих операций в программировании звучат несколько иначе, но для цели обучения подойдет и их общепринятое именование. Ну и, конечно же, это не все операции, мы изучим еще больше их со временем, пока нужно знать об этих.

 

Выражения в Java

Попробуем использовать полученные знания об объявлении, инициализации и операторах на деле. Когда мы объединяем все эти вещи вместе – это будет называться «выражением». Давайте напишем небольшое приложение, используя полученные знания.

Нам потребуется создать новый проект в Android Studio, как мы уже с вами делали, но мы не будем использовать интерфейс. Вместо этого, мы напишем код и проверим его работоспособность путём вывода значений переменных в консоль Android Studio, именуемой в народе logcat.

  • Открываем Android Studio. Идём в File – New – New Project;
  • В поле Application Name введите, например, «Values». Большой роли это не играет – это всего лишь имя проекта, но лучше их именовать так, чтобы потом можно было разобраться в этой куче-мале созданных проектов. Жмём Next Button;
  • В следующем окне удостоверьтесь, что в поле Phone and Tablet стоит галочка, в остальных полях можно убрать. Так же нам нужно выбрать самую раннюю версию ОС Android, на которой мы хотим, чтобы наше приложение было доступно. Можете поиграться и увидите, что чем меньшую версию ОС Android вы выбираете, тем на большем проценте девайсов по всему миру будет доступно ваше приложение. Но тем меньше возможностей Android Studio вам будет предоставлено, так как новые модели телефонов/планшетов используют недоступные для старых девайсов технологии. По мне, золотой серединой является API 14. Жмём кнопку Next Button;
  • Выберите Empty Activity и еще раз Next;

Перед вами должно появится нечто похожее на скриншот:

создание проекта в android studio

Далее начинаем писать код:

  • Теперь в методе onCreate сразу после строки, где мы используем метод setContentView… напишите следующий код для объявления и инициализации переменных:
//объявляем и инициализируем переменные разных типов
int a = 10;
String b = "Alan Turing";
boolean c = true;
  • Пишем далее:
//Выведем значения переменных и посмотрим, что нам выдаст консоль
Log.i("info", "a = " + a);
Log.i("info", "b = " + b);
Log.i("info", "c = " + c);

Скорее всего у вас «Log.i» выделено сейчас красным цветом – это Android Studio сообщает вам об ошибке отсутствия в вашем проекте библиотеки android.util.Log. Для решения этой проблемы вам необходимо поставить каретку в имя метода «Log.i» и нажать «Alt+Enter».  Android Studio моментально импортирует нужную библиотеку в проект.

импортируем библиотеку в Java

  • Теперь изменим значения переменных используя некоторые знакомые и незнакомые нам операторы:
//Небольшие изменения
a++;
a = a + 10;
b = b + "был умнее среднестатистического барашка";
b = b + a;
c = (1 + 1 == 3);//1 + 1 определённо 2! Поэтому ЛОЖЬ.

Попробуйте самостоятельно подумать, что нам выдаст консоль перед тем, как мы выведем эти значения.

  • Давайте еще раз выведем эти значения в консоль и посмотрим на них после изменений, которые произошли в пункте 3 с нашими данными.
//Снова выводим их в консоль
Log.i("info", "a = " + a);
Log.i("info", "b = " + b);
Log.i("info", "c = " + c);
  • Теперь можно запускать проект или на эмуляторе или на реальном девайсе, роли это сейчас не играет, так как вся информация выведется в консоль Android Studio. Вы можете увидеть выходные данные во вкладе «Android Monitor»:

выводим информацию с помощью log

Вот, что получилось у меня. Давайте разберёмся поподробнее во всём этом:

В пункте 1  мы объявили и инициализировали переменные:

  • a: это переменная типа int, хранящая в себе значение 10;
  • b: это переменная типа String, хранящая в себе имя знаменитого компьютерного ученого;
  • c: это переменная типа boolean, хранящая в себе значение «true».

В момент вывод данных в консоль, описанный в пункте 2 мы видим, что всё идёт ровно так, как мы и задали:

a = 10

b = Alan Turing

c = true

В пункте 3 мы начинаем изменения значений. Сначала добавляем единичку к переменной «, используя оператор инкрементирования: a++. Далее добавили к « 10. Тем самым значение переменной « становится равно «21».

 
Теперь разберёмся с переменной «. Здесь мы складываем вместе две строки «Alan Turing» и «был умнее среднестатистического барашка». Операция сложения строк называется конкатенацией. Следующая строка кода к уже полученной нам длинной строке «Alan Turing был умнее среднестатистического барашка» прибавляем значение переменной «. Такая конструкция разрешена, вы можете добавлять значение типа «int» к «String», но не наоборот:

int to string

И наконец, давайте посмотрим, что же произойдёт с переменной « после операции c = (1 + 1 == 3);. Здесь мы присваиваем к переменной «значение выражения, хранящегося в скобках. Мы немного забежали вперёд и использовали оператор «==» — это оператор сравнения в Java. Получается, что мы спрашиваем «1+1 = 3 ?». Очевидно, что ответ не удовлетворительный, а значит в переменную « компьютер запишет значение «false».

Кстати, неправильное использование «=» и «==» является очень распространённой ошибкой. Обращайте на это своё внимание в будущем, когда вам будет казаться, что код написан верно, а ожидаемый результат не совпадает с действительным.

На этом пока всё, в следующем уроке будем применять полученные знания уже в нашем приложении.