Главная страница
Навигация по странице:

  • Базовый тип Класс-оболочка

  • Сделать задания 1, 2

  • Вывод

  • Лекция 1 Переменные и основные типы данных. Операторы. Циклы. Массивы. Лекция 1. Лекция 1 Переменные и основные типы данных. Операторы. Циклы. Массивы Типы данных Типы переменных


    Скачать 79.28 Kb.
    НазваниеЛекция 1 Переменные и основные типы данных. Операторы. Циклы. Массивы Типы данных Типы переменных
    АнкорЛекция 1 Переменные и основные типы данных. Операторы. Циклы. Массивы
    Дата14.03.2023
    Размер79.28 Kb.
    Формат файлаpptx
    Имя файлаЛекция 1.pptx
    ТипЛекция
    #987409

    Лекция 1 Переменные и основные типы данных. Операторы. Циклы. Массивы

    Типы данных

    Типы переменных

    Переменная – это ячейка памяти с именем. По этому имени к ячейке можно обращаться в программе. Две базовые операции, которые выполняются с ячейками – это запись и считывание значения.

    Типы переменных:

    • Простые (примитивные)
    • Классовые (ссылочные)

    Простые типы (передаются по значению)

    • boolean
    • char
    • byte, short, int, long
    • float, double

    Пример:

    int a = 3;

    int b = a;

    b++;

    // b = 4, a = 3

    Ссылочные типы (передаются по ссылке)


    Пример 1:

    Phone firstPhone = new Phone("Samsung");

    Phone secondPhone = firstPhone;

    secondPhone.setName("iPhone");

    // firstPhone.getName() -> “iPhone”

    // secondPhone.getName() -> “iPhone”

    Пример 2

    String str1 = “Some string”;

    String str2 = “Some string”;

    // (str1 == str2) -> false

    // (str1.equals(str2) -> true

    Классы-оболочки


    Базовый тип

    Класс-оболочка

    byte

    Byte

    short

    Short

    int

    Integer

    long

    Long

    float

    Float

    double

    Double

    char

    Character

    boolean

    Boolean

    Явное приведение типов

    Пример:

    byte x = 100;

    byte y = 50;

    byte z = x+y; //Ошибка!!

    byte z = (byte) (x+y) //Все работает, но неправильно

    int z = x + y; // Все работает правильно

    Автоматическое приведение типов

    • Если в выражении есть операнд типа double, то другой операнд приводится к типу double
    • Если в выражении нет операндов типа double, но есть операнд типа float, то второй операнд также приводится к типу float
    • Если в выражении действительных операндов нет, но есть операнд типа long, то другой операнд также приводится к этому типу
    • Если в выражении операндов типа long нет, то операнды типа byte, short и char расширяются типа int. Результат вычисления выражения также имеет тип int.

    Базовые операторы

    Арифметические операторы




    Оператор

    Результат

    Оператор

    Результат

    1

    +

    Сложение

    + =

    Сложение с присваиванием

    2

    -

    Вычитание (также унарный минус)

    - =

    Вычитание с присваиванием

    3

    *

    Умножение

    * =

    Умножение с присваиванием

    4

    /

    Деление*

    / =

    Деление с присваиванием

    5

    %

    Деление по модулю

    % =

    Деление по модулю с присваиванием

    6

    ++

    Инкремент

    --

    Декремент

    *Если операнды – целые числа то результатом будет целая часть от деления!

    Логические операторы Java




    Оператор

    Результат



    Оператор

    Результат

    1

    &

    логическое И (AND)

    7

    >

    Больше

    2

    |

    логическое ИЛИ (OR)

    8

    >=

    Больше или равно

    3

    ^

    логическое исключающее ИЛИ(XOR)

    9

    <

    Меньше

    4

    ||

    оператор OR быстрой оценки выражений (shortcircuit OR)

    10

    <=

    Меньше или равно

    5

    &&

    оператор AND быстрой оценки выражений (shortcircuit AND)

    11

    !=

    не равно

    6

    !

    логическое унарное отрицание (NOT)

    12

    ==

    равно

    Тернарный оператор

    условие ? выражение1 : выражение2 (a : b ? с)

    Если первый операнд равен true , то в качестве результата возвращается значение второго операнда b, если же a равно false, то возвращается значение с.

    Пример:

    int number = new Random().nextInt();

    String text = number%2 == 0 ? "четное" : "нечетное";

    Сделать задания 1, 2

    Управляющие конструкции

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

    if (условие_1) {

    команды_1

    } else if (условие_2) {

    команды_2

    } else {

    команды_3

    }


    Пример:

    if (a < -5) {

    a++;

    } else if (a >= -5 && a < 5) {

    a--;

    } else {

    if (b != 0) {

    a = a*b;

    }

    }

    Switch-case

    switch(выражение) {

    case значение_1:

    команды_1;

    break;

    case значение_2:

    команды_2;

    break;

    default:

    команды;

    }


    Пример:

    switch(month) {

    case “September”:

    beSad();

    break;

    case “July”:

    beCheerful();

    break;

    default:

    keepCalm();

    }

    Цикл while и do-while

    While (условие) {

    команды;

    }

    do {

    команды;

    } while (условие);


    int x = 0;

    While (x < 5) {

    x++;

    }

    do {

    x--;

    } while (x < -5);

    Цикл for

    for (инициализация; условие; изменение_значений) {

    команды

    }


    int s=0;

    for (int i = 0; i<10; i++) {

    s+=i;

    }

    int s=0;

    int i = 10;

    for (; i>0; i--) {

    s+=i;

    }

    Сделать задания 3, 4

    int i=0;

    int s=0;

    for (; ;) {

    s+=++i;

    if (i>=10) break;

    }

    break и continue

    Оператор break завершает последовательность операторов в операторе switch, позволяет выйти из цикла и может использоваться в качестве оператора безусловного перехода (goto):

    while(true) {

    double d = Math.random();

    if(d > 0.8)

    break;

    System.out.println("d = " + d);

    }


    Оператор continue передаёт управление вначале итерационной части цикла, а затем условному выражению. При этом промежуточный ко, следующий в цикле за continue пропускается:

    for (int i = 0; i < 10; i++) {

    System.out.print(i + " ");

    if (i % 2 == 0)

    continue;

    System.out.println();

    }


    Массивы

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

    // объявление переменной массива

    int[] myArray;

    // Создание массива и запись ссылки на массив в переменную массива

    myArray = new int[10];

    Присваивание и сравнение массивов

    Фактическим значением переменной массива является адрес области памяти, где расположен массив.

    double[] firstArray;

    double[] secondArray;

    firstArray[] = new double[10];

    secondArray = firstArray;

    В реузультате обе переменные будут ссылаться на один и тот же массив.

    Двумерные массивы

    Двумерный массив – это одномерный массив, элементами которого являются одномерные массивы.

    int[][] doubleArray = new int[3][4];

    Инициализация двумерного массива:

    char[][] symbols = new char[][]{{‘a’}, {‘b’, ’c’}, {‘d’, ‘e’, ‘f’}};

    Вывод:

    a

    b с

    d e f

    Пример создания и инициализации массива

    System.out.println("Введите размер матрицы: ");

    Scanner sc = new Scanner(System.in);

    int size = sc.nextInt();

    int[][] nums = new int[size][size];

    for (int i=0; i

    for (int j=0; j

    nums[i][j] = new Random().nextInt(10);

    System.out.print(nums[i][j]+" ");

    }

    System.out.println();

    }

    java.util.Arrays

    Arrays – это вспомогательный класс для управления массивами. Он содержит инструменты сортировки, вывода, копирования, сравнения массивов. Основные методы этого класса:

      • copyOfRange()
      • equals()
      • fill()
      • sort()
      • toString()

    Пример

    // Создаем массив типа int

    int[] firstArray = new int[10];

    // Заполняем его числом 42

    Arrays.fill(firstArray, 42);

    // Заполняем вручную случайнми числами

    for (int i = 0; i < firstArray.length; i++)

    firstArray[i] = new Random().nextInt(10);

    // Создаем новый массив и копируем туда первые 5 элементов первого

    //массива

    int[] secondArray = Arrays.copyOfRange(firstArray, 0, 5);

    // Сортируем получившийся массив

    Arrays.sort(secondArray);

    // Выводим на экран отсортированный массив

    System.out.println(Arrays.toString(secondArray));

    Цикл foreach

    for(тип_переменной переменная : массив) {

    команды

    }

    Пример:

    byte[][] array = new byte[][]{0, 1, 2, 3, 4, 5, 6, 7, 8, 9};

    for (byte b : array) {

    System.out.println(b);

    }

    Сделать задания 5, 6

    Задания

    • Объявить String-переменную, содержащую число и преобразовать в число используя Integer.parseInt() и Double.parseDouble(). Выделить их в отдельные методы, которые в качестве аргумента будут получать строку и преобразовывать ее в число. Сложить эти 2 числа так, чтобы получилось целое число.
    • Написать методы, которые вычисляют объемы параллелепипеда, шара и цилиндра. В качестве аргументов им должны передаваться необходимые параметры, в качестве результата они должны возвращать объем фигуры.
    • Объявить 2 переменные типа double, значения которых будут началом и концом отрезка. Ввести с клавиатуры число. Программа должна определить, принадлежит число отрезку или нет.
    • Модифицировать предыдущую задачу так, чтобы программа после вывода результата предлагала выполнить операцию еще раз (y/n). И так до тех пор пока не ввести“n”. Реализовать проверку на наличие символов, отличных от y и n.
    • Объявить два массива одинакового размера. Выполнить поэлементное сравнение массивов. После сравнения программа должна вывести на экран номера отличающихся элементов.
    • Объявить и инициализировать символьный массив длиной 15 символов. Вывести его на экран, затем отсортировать и снова вывести на экран. Вырезать средние 5 элементов и вывести на экран.

    Домашнее задание

    • Написать простой калькулятор (4 арифметические операции). После вычисления результата программа должна предлагать выполнить еще одну операцию (y/n).
    • Объявить массив типа String и записать в него несколько имен. Ввести с клавиатуры имя. Если оно содержится в массиве, вывести сообщение о том, что имя есть в массиве, если нет – о том, что имени нет. Для сравнения двух строк использовать метод String.equals(). Пример:
    • if (string1.equals(string2))

      doSomething();



    написать администратору сайта