Создайте пустой проект

Запустите IntelliJ IDEA.

  1. Нажмите Create New Project или File->New->Project
  2. Сверху слева должно быть выбрано: Java
  3. Сверху в Project SDK должно быть что-то вроде 1.8, если это не так - спросите меня
  4. Next -> Next -> Назовите как-нибудь проект (например Lesson1) и убедитесь что проект в папке которая не пропадет к следующему уроку -> Finish
  5. Кликните слева сверху на 1: Project -> разверните ваш проект -> сделайте правый клик по папке src -> New -> Java Class -> Lesson1Main -> OK
  6. Откройте двойным кликом Lesson1Main и напечатайте в нем main-функцию следующим образом:
    Java main example

  7. Теперь нужно запустить эту программу - нажмите правой кнопкой на класс Lesson1Main слева в 1: Project поле и затем Run 'Lesson1Main.main()'
  8. Обратите внимание что снизу появилось полу 4: Run в котором находится вывод вашей программы - сообщение Hello world!

Правила игры

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

Из выполненных заданий вы должны постепенно накопить небольшую программу которая и является результатом вашей работы. Если вы не успели выполнить все задания до конца - доделайте дома, и отправьте этот файл Lesson1Main.java (даже если не все успели) мне по почте с указанием вашего имени и фамилии. Недоделанное на уроке и неотправленное до четверга задание - будет означать двойку или единицу.

Объявления переменных и вывод

Пока что весь код будет внутри main-функции.

Чтобы объявить локальную переменную нужно написать сначала тип этой переменной, затем название этой переменной и опционально сразу присвоить какое-то значение через оператор присвоения =:

public static void main(String[] args) {
    int a = 239;
    double b = 23.9;
    String c = "some text";
}

Вот примеры нескольких типов:

  • int - целое число
  • double - вещественное число (так же называется числом с плавающей точкой)
  • String - строка

Обратите внимание что печатать в консоль можно не только строчку Hello world, но таким образом можно вывести и значение переменной - нужно лишь передать в функцию System.out.println(...) эту переменную:

public static void main(String[] args) {
    int a = 239;
    System.out.println(a);
}

Запустите программу чтобы убедиться в этом.

Операции над переменными

Над численными переменными можно делать разные арифметические операции, такие как сложение +, вычитание -, умножение *, деление / и взятие по модулю %.

Например:

int a = 239;
int b = 10 * a;
a = a + b;
b = a;

Определение Число Фибоначчи \(F_0=0\), \(F_1=1\), \(F_n = F_{n-1} + F_{n-2}\)

Задание 1 посчитайте используя переменные и операции над ними, а затем выведите на экран \(F_3\) и \(F_4\).

Обратите внимание что можно печатать в консоль не только строку или переменную, но и их вместе:

System.out.println("Число Фиббоначи F0=" + f0 + ", а число Фиббоначи F1=" + f1 + "!");

Задание 2 выводя в консоль числа \(F_3\) и \(F_4\) добавьте текстовое пояснение, что же за числа вы выводите.

Считывание введенных данных

Чтобы считать данные из консоли - удобно использовать Scanner. Его нужно сначала импортировать, т.е. указать в программе что мы его будем использовать, для этого нужно в начале программы добавить import java.util.Scanner;

import java.util.Scanner;

public class Lesson1Main {

После того как мы его импортировали - в main функции можно не только выводить числа, но и считывать пользовательский ввод из консоли:

Scanner scanner = new Scanner(System.in);

int a = 239;
System.out.println("Старое число a=" + a);
System.out.println("Введите число a: ");

a = scanner.nextInt();

System.out.println("Введенное число a=" + a);

Чтобы ввести число - кликните мышкой в поле с выводом программы, напечатайте число и нажмите Enter.

scanner.nextInt() - функция считает введеную строку, проверит что введенная строка является целым числом и вернет значение этого целого числа (в нашем случае этот результат присвоится в переменную a).

Задание 3 считайте из консоли 3 числа (с явным комментарием что пользователь должен ввести - например Введите первое целое число:), и напечатайте в консоль их сумму.

Логические операции

Кроме типов int, double, String и Scanner часто нужен тип boolean.

Переменная типа boolean обладает одним из двух значений:

  • true - правда
  • false - ложь

Такую переменную можно назвать логической. Т.е. эта переменная говорит да или нет, правда или ложь, верно какое-то утверждение или нет.

Задание 4 Запустите простой пример:

boolean b = true;
System.out.println(b);
b = false;
System.out.println(b);

Условный оператор if/else

boolean b = true;
if (b) {
    System.out.println("Переменная b == true");
}
System.out.println("Конец программы");

if проверяет верно ли утверждение в скобочках (в данном случае он проверяет какое значение логической переменной b), и если значение в скобочках true, то программа выполнит код внутри фигурных скобочек. Открывающая фигурная скобка { - начало, закрывающая фигурная скобка } - конец.

Заметьте что этот код эквивалентен явной проверке на равенство логической переменной b значению true:

boolean b = true;
if (b == true) {
    System.out.println("Переменная b == true");
}
System.out.println("Конец программы");

Задание 5 Напишите программу с if который проверяет что логическая переменная содержит ложь (false) и пишет соответствующее сообщение. Обратите внимание что сравнение на равенство делается не через одно равенство =, а через два ==.

Часто удобно использовать if/else конструкцию:

boolean b = true;
if (b) {
    System.out.println("Переменная b == правда");
} else {
    System.out.println("Переменная b == ложь");
}
System.out.println("Конец программы");

Если условие написанное в скобочках у if верно - выполняется первый блок кода в фигурных скобочках, если же условие неверно, то первый блок кода не выполняется как и раньше, но т.к. есть else (в переводе означает “иначе”), то программа пойдет по этому альтернативному пути, и второй блок кода будет исполнен.

Так же обратите внимание что в скобочках у if может быть не только логическая переменная, но и логическое выражение. Примеры логических операций:

  • a == b
  • a > b
  • a < b
  • a >= b
  • a <= b
  • !(логическаяОперация) - ! - операция логического НЕ - т.е. отрицания, т.е. эта логическая операция возвращает true тогда и только тогда, когда логическая операция в скобочках равна false
  • (логическаяОперация1) && (логическаяОперация2) - && - это операция логического И, т.е. эта логическая операция возвращает true тогда и только тогда, когда обе логические операции равны true
  • (логическаяОперация1) || (логическаяОперация2) - || - это операция логического ИЛИ, т.е. эта логическая операция возвращает true тогда и только тогда, когда хотя бы одна из логических операций равна true

Пример:

int a = 725;
if ((a >= 100) && (a < 1000)) {
    System.out.println("Число " + a + " лежит в промежутке от 100 до 999");
}

Примеры (% - операция взятия по модулю):

int a = 725;
if (((a % 100) / 10 == 2) && (a % 10 == 5)) {
    System.out.println("В числе " + a + " два десятка и пятерка на конце, а сотен аж " + (a / 100));
} else {
    System.out.println("В числе " + a + " не два десятка и пятерка в конце :(");
    if (a % 239 == 0) {
        System.out.println("Но оно хотя бы делится на 239! :)");
    }
}

Задание 6 Считайте целое число из консоли, проверьте лежит ли оно от 10000 до 99999, если меньше - напечатайте “число слишком маленькое”, если больше - напчеатайте “число слишком большое”. Если же число подходящее, то если оно четное - напечатайте число сотен в этом числе, а если нечетное - то число тысяч в этом числе.

Задание 7 Считайте целое число из консоли, проверьте лежит ли оно в промежутке от 0 до 99 включительно. Если меньше - напечатайте что “число слишком маленькое”, если больше - напечатайте “число слишком большое”. Если же число подходящее, то напечатайте в консоль текстовое представление числа, например для 23 это будет “двадцать три”, а для 15 - “пятнадцать”.