- •Иркутский государственный университет путей сообщения кафедра “информатика” программирование на языке java
- •Иркутск
- •Содержание
- •Предисловие
- •Алфавит языка
- •Ключевые слова
- •Типы данных
- •Литералы (константы)
- •Комментарии
- •Переменные
- •Математические функции
- •Выражения
- •Выражения целого типа
- •Примеры записи выражений целого типа:
- •Примеры вычислений выражений целого типа:
- •Выражения действительного типа
- •Примеры записи выражений действительного типа
- •Примеры вычислений выражений действительного типа:
- •Выражения логического типа
- •Операторы присваивания
- •Variable имяПеременной might not have been initialized
- •Примеры записи операторов присваивания:
- •Ввод и вывод данных
- •Ввод и вывод с помощью диалоговых окон
- •Import javax.Swing.*;
- •Консольный вывод
- •Консольный ввод с помощью класса Scanner
- •Import java.Util.*; //импорт пакета
- •Структура программы
- •Import javax.Swing.*;
- •Import java.Util.*;
- •Алгоритм и его свойства
- •Схемы алгоритмов
- •Пример записи алгоритма:
- •Базовые структуры
- •Цепочка
- •Ветвления
- •Альтернатива
- •If (условие)
- •Вариант 2 – с использованием операции конъюнкции
- •Import javax.Swing.*;
- •Int c, y1, y2, kl, day, month, year;
- •Часто встречающиеся ошибки программирования:
- •Import javax.Swing.*;
- •Переключатель
- •Int month;
- •Часто встречающиеся ошибки программирования:
- •Бесконечные циклы
- •Циклы с предусловием
- •Программа
- •Программа
- •Часто встречающиеся ошибки программирования:
- •Циклы с постусловием
- •Программа
- •Int month;
- •Циклы с параметром
- •Действия цикла:
- •Операторы прерывания break, continue, return, System.Exit
- •Структуры данных
- •Массивы
- •Import javax.Swing.*;
- •Import java.Util.*;
- •Int n, m, matrMin, matrMax;
- •Import javax.Swing.*;
- •Import java.Util.*;
- •Int n, vectorMin, vectorMax, temp;
- •VectorMin, vectorMax, n);
- •Import javax.Swing.*;
- •Import java.Util.*;
- •Int n, vectorMin, vectorMax, temp;
- •VectorMin, vectorMax, n);
- •Методы для работы с массивами
- •Класс String
- •Методы для работы со строками класса String
- •Класс StringBuffer
- •Методы для работы со строками класса StringBuffer
- •Import java.Io.*;
- •Import javax.Swing.*;
- •Import java.Io.*;
- •Import javax.Swing.*;
- •Обработка исключительных ситуаций
- •If (переменная name вышла за диапазон)
- •Import java.Io.*;
- •Import javax.Swing.*;
- •Import java.Io.*;
- •Import javax.Swing.*;
Операторы прерывания break, continue, return, System.Exit
Часто требуется прерывать цикл или выполнение функции при выполнении некоторых условий и перейти на выполнение другого алгоритма или очередной итерации цикла. В Javaимеются гибкие структурные средства для решения подобных проблем – это операторыbreak, continue, return, System.exit:
continue прерывание выполнения тела цикла и переход к следующей итерациитекущегоцикла,
continue метка прерывание выполнения тела цикла и переход к следующей итерации цикла, помеченногометкой,
break выход изтекущегоцикла,
break метка выход из цикла, помеченногометкой,
return выход из текущей функции (в том числе из тела цикла)без возвратазначения,
return значение выход из текущей функции (в том числе из тела цикла)с возвратомзначения,
System.exit(n) выход изприложенияс кодом завершения n – целым числом, задаваемым программистом (n=0– выход нормальный, в остальных случаях – аварийный). Перед своим завершением приложение сообщает операционной системе код завершения, чтобы программист смог установить, по какой причине произошел аварийный выход,
метка идентификатор (имя), после которого ставится двоеточие. Метка может располагаться перед любым оператором. В этом случае оператор называетсяпомеченным:
label_1: // метка
for (int i=1; i<=4; i++)
for (int j=1; j<=4; j++)
{
if (i==j)
continue label_1; // переход на метку label_1
System.out.println(“i=” + i + “ j=” +j);
}
В окне вывода появится:
i=2 j=1
i=3 j=1
i=3 j=2
i=4 j=1
i=4 j=2
i=4 j=3
При выполнении условия (i==j)внутренний цикл прерывается, и управление передается внешнему циклу – берется следующее значение i, а внутренний цикл сбрасывается наj=1.
label_1:
for (int i=1; i<=4; i++)
for (int j=1; j<=4; j++)
{
if (i!=j)
break label_1; // переход на метку label_1
System.out.println(“i=” + i + “ j=” +j);
}
В окне вывода появится:
i=1 j=1
При первом же выполнении условия (i!=j)прерывается цикл, перед которым стоит меткаlabel_1, то есть внешний цикл, и программа заканчивает работу.
for (int i=1; i<=4; i++)
{
label_1:
for (int j=1; j<=4; j++)
{
if (i==j)
break label_1;
System.out.println(“i=” + i + “ j=” +j);
}
}
В окне вывода появится:
i=2 j=1
i=3 j=1
i=3 j=2
i=4 j=1
i=4 j=2
i=4 j=3
При первом же выполнении условия (i==j)прерывается цикл, перед которым стоит меткаlabel_1, то есть внутренний цикл , и управление передается внешнему циклу – берется следующее значение i, а внутренний цикл сбрасывается наj=1. Такой же результат получается, если совсем убрать меткуlabel_1 перед внутренним циклом:
for (int i=1; i<=4; i++)
for (int j=1; j<=4; j++)
{
if (i==j)
break;
System.out.println(“i=” + i + “ j=” +j);
}
Структуры данных
В повседневной практике обработки информации мы часто имеем дело с естественно организованными (объединенными) представлениями информации: текстами, списками, таблицами, анкетами. Такие организованные (структурированные) данные во многом облегчают их восприятие и обработку.
Естественная организация данных эффективно отражается в современных языках программирования понятием структур данных.
Под структурами данныхпонимаются специальным образом организованные совокупности данных, облегчающие реализацию алгоритма и их компьютерную обработку.
Отличительной особенность хорошо написанных программ является то, что данные в них организованы в определенные, наиболее подходящие для их хранения и обработки структуры, а сами программы являются лишь средством обработки этих структур независимо от их информационного содержания. Проектирование подходящих структур данных для их эффективной обработки программой столь же важно, и занятие это, возможно, более сложное, чем написание собственно операторов программы в соответствии с выбранным алгоритмом их обработки. Хорошо спроектированные структуры данных облегчают и ускоряют их обработку, улучшают понимание самой программы. Организация структур данных и их взаимодействия в объектно-ориентированном программировании занимает 95% объема времени написания программы.
К базовым структурамданных вJavaотносятся:
переменные,
массивы,
строки,
файлы.
Понятие переменныхбыло введено раньше – это структура данных, состоящая из отдельных элементов, каждый из которых имеет имя, тип и конкретное значение.