[Java] Введение в базовый синтаксис
Создайте пустой проект
Запустите IntelliJ IDEA.
- Нажмите
Create New Project
илиFile
->New
->Project
- Сверху слева должно быть выбрано:
Java
- Сверху в Project SDK должно быть что-то вроде
1.8
, если это не так - спросите меня Next
->Next
-> Назовите как-нибудь проект (напримерLesson1
) и убедитесь что проект в папке которая не пропадет к следующему уроку ->Finish
- Кликните слева сверху на
1: Project
-> разверните ваш проект -> сделайте правый клик по папкеsrc
->New
->Java Class
->Lesson1Main
->OK
-
Откройте двойным кликом
Lesson1Main
и напечатайте в нем main-функцию следующим образом:
- Теперь нужно запустить эту программу - нажмите правой кнопкой на класс
Lesson1Main
слева в1: Project
поле и затемRun 'Lesson1Main.main()'
- Обратите внимание что снизу появилось полу
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 - “пятнадцать”.