модуль 1 - 1-Основные конструкции.ppt
- Количество слайдов: 36
IT ШКОЛА SAMSUNG Модуль 1. Основы программирования Занятие 1. Основные алгоритмические конструкции в JAVA
ПРОГРАММА Этап 1: Исходный код Этап 3: Загрузка на другое устройство Этап 2: Компиляция Этап 4: Запуск программы 2
СРЕДА ПРОГРАММИРОВАНИЯ 1) редактор кода 3) среда запуска 2) компилятор 4) отладчик 3
СРЕДА ПРОГРАММИРОВАНИЯ – ECLIPSE – ПЕРВЫЙ ЗАПУСК ЭТО НАДО ЗАПОМНИТЬ! 4
СОЗДАНИЕ ПРОЕКТА И КЛАССА File ⇒ New ⇒ Java Project File ⇒ New ⇒ Class НЕ ИСПОЛЬЗУЙТЕ РУССКИЕ БУКВЫ В НАЗВАНИИ! 5
ПЕРВАЯ ПРОГРАММА Имя такое же, как и имя файла с исходным кодом Стандартный класс, библиотечный import java. io. Print. Stream; public class Program 1 { public static Print. Stream out = System. out; public static void main(String[] args) { out. println("Hello, world!"); } Главная функция, с которой начинается выполнение программы на JVM } Запустите среду Eclipse и наберите программу 6
ПЕРВАЯ ПРОГРАММА - КЛАСС На Java-машине выполняются классы. Класс содержит методы и поля Создание инструмента вывода – пишется до функции main, чтобы сделать видимым для других функций static Print. Stream out = System. out; Сообщаем компилятору где найти необходимые классы – оператор IMPORT import package_name. subpackage_name. class_name; Можно добавить автоматически строку import с нужным классом 7
ПЕРВАЯ ПРОГРАММА Без создания объекта Ничего не возвращает Принимает массив объектов String public static void main(String[] args) { Объект класса Print. Stream Функция печати в консоль out. println("Hello, world!"); Запуск программы на выполнение 8
ПЕРВАЯ ПРОГРАММА 9
УСЛОВНЫЙ ОПЕРАТОР if ( условие ) { // что делать, если условие верно } else { // что делать, если условие неверно } Особенности: • вторая часть (else …) может отсутствовать (неполная форма) • если в блоке один оператор, можно убрать { }
ЧТО НЕПРАВИЛЬНО? if ( a > b ) { a = b; } else b = a; if ( a > b ) a = b; else b = a; if ( a > b ) { a = b; } else b = a; if ( a = c = else b = a > b ){ b; 2*a; } a;
ОСОБЕННОСТИ JAVA 1. if (price < 100) //простое условие 2. if (x!=0) //простое условие 3. if (x>0 && x<1) //составное условие 4. if (s. equals("Russia") && g. equals("Ufa"))//составное условие 5. if (s. equals("Sweden") || s. equals("Finland") || s. equals("Denmark")) //составное условие При проверке ОБЪЕКТОВ на равенство оператор == укажет нам лишь на то, являются ли объекты в памяти одними и теми же переменными. Если же необходимо проверить логическое равенство объектов, то следует использовать метод equals.
БЛОКИ В JAVA Блок – это группа операторов, заключенных в фигурные скобки Блоки применяются, если: ● необходимо использовать несколько операторов вместо одного оператора; Например, цена на услугу вычисляется с учетом инфляции if (inf > 0){ price+=inf*price/100; System. out. println("Цена: "+ price); } ● для ограничения области действия переменных.
ТЕРНАРНАЯ ОПЕРАЦИЯ И УСЛОВНЫЙ ОПЕРАТОР x = y > 0 ? 10 : -10; Аналог if (y > 0) { x = 10;} else { x = -10;}
ОПЕРАТОР ВЫБОРА (SWITCH-CASE) switch(выражение) { сase значение 1: команды1; break; сase значение 2: команды2; break; … сase значение. N: команды. N; break; default: команды. N+1; } Особенности работы: 1. вычисляется значение выражения; 2. если такое значение найдено, то дальнейшая проверка не производится, а выполняются команды, соответствующие выбранной ветви, после чего управление передается оператору, следующему за фигурной скобкой, которая закрывает всю конструкцию switсh-case. Каждый case блок заканчивается командой break, для прерывания оператора switch-case; 3. если подходящего значения в перечне нет, то выполняются команды, стоящие после ключевого слова default. Если ветви default нет, то не выполняется ничего. В конструкции switch может быть применен только один оператор default.
ОПЕРАТОР ВЫБОРА (SWITCH-CASE) Особенности: • после switch может быть имя переменной или арифметическое выражение целого типа (int) switch ( i+3 ) { case 1: a = b; break; case 2: a = c; } или типов byte, short, int, char, НО не long! long • нельзя ставить два одинаковых значения: switch ( x ) { case 1: a = b; break; case 1: a = c; }
ОПЕРАТОРЫ ЦИКЛА - WHILE while ( условие ) { // т ело цикла } ! Цикл с предусловием – проверка на входе в цикл! Особенности: • условие пересчитывается каждый раз при входе в цикл • если условие на входе в цикл ложно, цикл не выполняется ни разу a = 4; b = 6; while ( a > b ) a = a– b; • если условие никогда не станет ложным, программа зацикливается a = 4; b = 6; while ( a < b ) d = a + b;
ОПЕРАТОРЫ ЦИКЛА – DO-WHILE заголовок цикла тело цикла do { // т ело цикла } while ( условие ) ; условие продолжения • при входе в цикл условие не проверяется • цикл всегда выполняется хотя бы один раз
ОПЕРАТОРЫ ЦИКЛА – FOR for (начальные значения; условие продолжения цикла; изменение на каждом шаге) { // тело цикла } Примеры: for (a = 2; a < b; a+=2) {. . . } for (a = 2, b = 4; a < b; a+=2) {. . . } for (; ; ) {. . . } for (; c < d; x++) {. . . } for (; c < d; ) {. . . }
ОПЕРАТОРЫ ЦИКЛА – FOR и WHILE
ОПЕРАТОР BREAK int x = 10; while (x < 100){ if (x == 2 * (x / 10) * (x % 10)) { break; } x++; } ! break – прерывает работу цикла! 21
ОПЕРАТОР BREAK с МЕТКОЙ outer: for (int i = 0; i < 3; i++) { System. out. print("Итерация " + i + ": "); for (int j = 0; j < 100; j++) { if (j == 10) { break outer; // выйти из обоих циклов } out. print(j + " "); } out. println("Эта строка никогда не будет выведена"); } ! break с меткой позволяет выйти из обоих циклов! 22
ОПЕРАТОР CONTINUE for (int i = 0; i < 10; i++) { System. out. print(i + " "); if (i % 2 == 0) { continue; } out. println(); } ! continue - переход к следующей итерации (обрыв текущей итерации) 23
Хитрости и тонкости Обратите внимание на строку @Override Она не обязательна, но показывает что метод on. Draw существует в суперклассе View – и в этом классе переопределяется. Eclipse обозначает такие методы зеленым треугольником. Он показывает, что метод именно переопределяется, а не создается новый. Это очень важный знак. Если ошибиться в названии, то будет создан совершенно другой метод и он не будет вызываться системой. 24
IT ШКОЛА SAMSUNG Типы данных и арифметические операции
ПРЕДСТАВЛЕНИЕ ДАННЫХ В ПАМЯТИ 26
ТИПЫ ДАННЫХ В JAVA Примитивные типы Ссылки на объект рассмотрим позже Описание переменной <тип> <имя переменной>[ = <значение>]; Примеры: Целое число int a 2; double xx =. 15; Вещественное число 27
ВВОД И ВЫВОД ЧИСЕЛ Вывод чисел int x = 5, y = 7; out. println(x + y); вывод через объект класса Print. Stream Ввод чисел static Scanner in = new Scanner(System. in); ввод через объект класса Scanner int x = in. next. Int(); функция ввода целого значения, next. Double() - вещественное 28
ВВОД И ВЫВОД ЧИСЕЛ in. use. Locale(Locale. US); настройка Scanner на использование десятичной точки //… double r = in. next. Double(); out. println(3. 1415 * r); 29
А+В import java. io. Print. Stream; import java. util. Scanner; public class My. Program { // public необходим, чтобы Android приложение могло изменить значение переменных. public static Scanner in = new Scanner(System. in); public static Print. Stream out = System. out; public static void main(String[] args) { int a, b; out. println("Введите два числа: "); Или так int a = in. next. Int(), b = in. next. Int(); a = in. next. Int(); b = in. next. Int(); c = a + b; Можно обойтись и без переменной c out. println("Сумма: " + (a + b)); out. print("Сумма: "); out. print(c) } } 30
АССОЦИАТИВНОСТЬ ОПЕРАЦИЙ out. print("Сумма: " + (a+b)); Конкатенация (сцепление) строк Зачем скобки? Все бинарные операции левоассоциативны а - b - с вычисляется как (а – b) – c, то есть «как в математике» . import java. io. Print. Stream; import java. util. Scanner; public class My. Program Операторы присваивания правоассоциативны { а = b = с равнозначно а = (b = c) public static Scanner in = new Scanner(System. in); public static Print. Stream out = System. out; public static void main(String[] args) { int a, b; out. println("Введите два числа: "); a = in. next. Int(); b = in. next. Int(); c = a + b; out. print("Сумма: "); Запустите эту программу на мобильном устройстве out. print(c) } 31 }
АРИФМЕТИЧЕСКИЕ ОПЕРАЦИИ – ОСОБЕННОСТИ В JAVA Переполнение int x = 1000 * 1000; out. println(x * x); Проверьте, что выдаст программа на экран Целые числа в Java (переменные типа int) не могут содержать значения большие 231 по модулю Деление целых чисел выполняется нацело 5 / 3 = 1 Вычисление остатка от деления (% - только для целых чисел) 5 % 3 = 2 out. println((-7) % 3); Проверьте, что выдаст программа на экран и объясните результат 32
АРИФМЕТИЧЕСКИЕ ОПЕРАЦИИ – ОСОБЕННОСТИ В JAVA Проверка четности /*сравнение в Java выполняется удвоенным знаком равенства (==)*/ if (a % 2 == 0)… В Java нет операции возведения в степень! ^ - логическая операция Деление без отсечения дробной части: сравните int a = 7, b = 8; out. println((a + b) / 2); out. println((a + b) / 2. 0); 33
ОПЕРАЦИИ С ПРИСВАИВАНИЕМ minutes = minutes + 1; - быстрее будет выполняться, если записать так minutes += 1; Или -= /= %= и т. д. Инкремент и декремент - увеличение и уменьшение на 1 minutes++; //постфиксная запись //Это эквивалентно //++minutes; префиксная запись Результат одинаковый Проверьте, что выдаст программа в другом случае. И сделайте вывод save. Minutes= minutes++; //Это не эквивалентно //save. Minutes= ++minutes; 34
Домашнее задание Установить среду программирования (Eclipse и Android Studio) В случае ошибки при установке на домашний компьютер, сделать скриншот и принести показать.
Спасибо! В презентации использованы материалы К. Полякова http: //kpolyakov. spb. ru/


