Программирование на языке Java

Характеристика алфавита языка Java, а также таких его компонентов как литералы, комментарии и переменные. Описание выражений целого, действительного и логического типов. Анализ специфики ввода и вывода данных. Характеристика базовых структур языка.

Рубрика Программирование, компьютеры и кибернетика
Вид курс лекций
Язык русский
Дата добавления 15.09.2017
Размер файла 930,1 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

ИРКУТСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ

ПУТЕЙ СООБЩЕНИЯ

КАФЕДРА “ИНФОРМАТИКА”

Программирование на языке Java

Автор: старший преподаватель

Лучников В.А.

Иркутск

2012

Лучников В.А. Программирование на языке Java. Учебное пособие - Иркутск: ИрГУПС, 2012.-127 с.

Учебное пособие предназначено для студентов специальностей “Информационные системы и технологии”, “Программная инженерия” и “Информационная безопасность”. Оно может быть также полезно для студентов других специальностей, изучающих программирование и использующих его в прикладных задачах при выполнении расчетно-графических и курсовых работ по специальным дисциплинам.

Учебное пособие содержит последовательное изложение основ программирования на примере алгоритмического языка Java, необходимую для практической работы справочную информацию. Пособие снабжено большим количеством примеров, иллюстрирующих основные приемы программирования. Рассматривается структурная и объектно-ориентированная технологии программирования, методы проектирования, отладки и тестирования программ, использование основных структур данных для решения конкретных практических задач. В конце каждой темы приводятся часто встречающиеся ошибки программирования, относящиеся к этой теме. Изложение материала опирается на учебник автора “Программирование на языке Си”.

Данное учебное пособие является пятым в серии учебных пособий по программированию на алгоритмических языках высокого уровня, написанных автором.

Содержание

Предисловие

1. Алфавит языка

2. Ключевые слова

3. Типы данных

4. Литералы

5. Комментарии

6. Переменные

7. Математические функции

8. Выражения

8.1 выражения целого типа

8.2 выражения действительного типа

8.3 выражения логического типа

9. Операторы присваивания

10. Ввод и вывод данных

10.1 ввод и вывод с помощью диалоговых окон

10.2 консольный вывод

10.3 консольный ввод с помощью класса Scanner

11. Структура программы

12. Алгоритм и его свойства

12.1 схемы алгоритмов

13. Базовые структуры

13.1 цепочка

13.2 ветвления

13.3 альтернатива

13.4 переключатель

13.5 циклы

13.6 бесконечные циклы

13.7 циклы с предусловием

13.8 циклы с постусловием

13.9 циклы с параметром

13.10 операторы прерывания

14. Структуры данных

14.1 массивы

14.2 методы для работы с массивами

14.3 строки

14.4 класс String

14.5 методы для работы со строками класса String

14.6 класс StringBuffer

14.7 методы для работы со строками класса StringBuffer

14.8 файлы

15. Обработка исключительных ситуаций

Предисловие

Язык Java является полностью объектно-ориентированным языком. Это значит, что любая программа на Java поддерживает парадигму объектно-ориентированного программирования (ООП), которая подразумевает описание классов и, как правило, создание объектов. Другими словами, любая программа, написанная на Java, представляет собой один или несколько взаимодействующих классов. Все действия по обработке информации производятся с помощью методов классов, используемых вместо привычных нам функций.

Java был создан в рамках проекта корпорации Sun Microsystems по разработке компьютерных программно-аппаратных комплексов нового поколения. В 1991 году инженером этой корпорации Патриком Ноутоном и членом Совета директоров Джеймсом Гослингом был запущен проект по разработке средств компьютерной поддержки электронных компонентов всевозможных приборов, как правило, бытовых. Проект базировался на разработке специального языка программирования - простого, удобного, универсального и экономного с точки зрения расходуемой памяти. В 1995 году этот проект увидел свет под именем Java. В конечной версии проекта получился язык программирования, ориентированный на использование в сети Интернет с сопутствующими средствами поддержки.

Java - это не только язык программирования, но и технология, названная этим же словом. В основу новой технологии была положена модель виртуальной машины. Эта идея позволяет решить главную, фундаментальную проблему - проблему универсальности программного кода. Программа, написанная на каком-нибудь языке программирования, должна быть переведена в набор инструкций, понятных для компьютера - в машинный код. Эту миссию берут на себя программы-трансляторы. Но машинный код, понятный для одного типа компьютеров, не обязательно должен быть понятен для остальных компьютеров. Поэтому компилятор Java-программы переводит программный код не в машинный, а в так называемый промежуточный или байт-код. Он один для всех типов компьютеров. Особенности того или иного компьютера учитывает виртуальная Java-машина (JDK - Java Development Kit) - программа, которая предварительно устанавливается на компьютер и под управлением которой выполняется байт-код.

В технологии Java существует насколько основных направлений:

- Java Enterprise Edition (Java EE, J2EE) - технология для создания программного обеспечения уровня больших корпораций,

- Java Standard Edition (Java SE, J2SE) - технология создания пользовательских приложений,

- Java Micro Edition (Java ME, J2ME) - технология создания приложений для мобильных телефонов, карманных персональных компьютеров и других маломощных вычислительных систем,

- Java Card - технология для устройств типа смарт-карт.

В книге будет использована технология Java Standard Edition, то есть стандартный дистрибутив Java.

Для разработки Java-приложений используется интегрированная среда разработки (IDE - Integrated Development Environment) NetBeans. Ее можно получить бесплатно с сайта www.netbeans.org.

1. Алфавит языка

Алфавит языка Java - это набор символов языка, используемых при написании программ. Он включает в себя три категории символов:

буквы,

цифры,

специальные знаки.

К категории букв относятся:

26 строчных букв латинского алфавита:

a b c d e f g h I j k l m n o p q r s t u v w x y z

26 прописных букв латинского алфавита:

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

причем одинаковые строчные и прописные буквы считаются разными символами.

Для записи комментариев и работы со строками могут дополнительно использоваться строчные и прописные буквы русского алфавита.

К категории цифр относятся десять арабских цифр:

0 1 2 3 4 5 6 7 8 9

Специальными знаками являются символы:

+ плюс ` апостроф

- минус “ кавычки

* звездочка ? вопросительный знак

/ дробная черта ! восклицательный знак

< меньше _ знак подчеркивания

> больше () круглые скобки

= равно [] квадратные скобки

. точка {} фигурные скобки

, запятая | вертикальная черта

; точка с запятой \ слэш

: двоеточие # знак номера (шарп)

~ тильда % процент

^ карат & амперсанд

2. Ключевые слова

Программы на языке Java пишутся с помощью ключевых слов (keywords), которые дают команду компьютеру на выполнение определенных действий.

В качестве ключевых слов используются слова английского языка, отражающие смысл выполняемого действия:

boolean логический if если

break прервать int целый

byte байт long длинный

case вариант main головной (основной)

catch захват (ловушка) new новый

char символьный private частный (тайный)

class класс public общедоступный (открытый)

const константа return возврат

continue продолжать short короткий

default по умолчанию static статический

do выполнять switch переключатель

double двойной try попытка (испытание)

else иначе true истина

false ложь void пустой

final while пока

float действительный

for для

3. Типы данных

Программы пишутся для того, чтобы обрабатывать данные. Методы и возможности по обработки данных зависят от их типа. Язык Java относится к строго типизированным языкам - каждая переменная в программе относится к определенному типу данных. Тип данных определяет диапазон изменения данных и операции, которые можно использовать для их обработки.

Все типы данных языка Java делятся на две группы:

- примитивные (простые) - primitive types,

- ссылочные - reference types.

Примитивные данные содержатся в одной ячейке памяти, не имеющей вложенных ячеек. У ссылочных данных в ячейке памяти (ссылочной переменной) содержатся не сами данные, а только адреса этих данных - ссылки на данные. При присваивании в ссылочную переменную заносится на новое значение, а новый адрес. Непосредственного доступа к адресу, хранящемуся в ссылочной переменной, нет. Это сделано для обеспечения безопасности работы с данными - как с точки зрения устранения непреднамеренных ошибок, характерных для работы с данными по их адресам в языках C/C++/Pascal, так и для предотвращения преднамеренного взлома информации.

К примитивным данным относятся следующие предопределенные типы:

1. целочисленные

Тип

Кол-во байтов

Диапазон

byte

1

-128…127

short

2

-32768…32767

int

4

-2 147 483 648…2 147 483 647

long

8

-9 223 372 036 854 775 808…

9 223 372 036 854 775 807

char

2

0…65736

На практике использование того или иного типа определяется потребностями в системных ресурсах. Тем не менее, среди перечисленных пяти типов тип int имеет особое значение, и использовать в программах лучше всего этот тип. Причина заключается в правилах автоматического приведения типов, о которых речь пойдет позже.

Внимание! Целые десятичные данные не могут начинаться с нуля!

2. символьные данные считаются данными целого типа и соответствуют целым десятичным числам в диапазоне 0…255.Поскольку в Java для символьных данных (char) выделяется 2 байта, то это позволяет охватить практически все имеющиеся и использующиеся на сегодня символы, включая иероглифы. Символы расширенного 8-разрыдного набора ISO-Latin-1 соответствует интервал значений от 0 до 255. Интервал значений от 0 до 127 определяет стандартные символы ASCII. В Java различают особую группу символов, используемых при вводе и выводе данных - управляющие символы или ESC-последовательности. Они заключаются в апострофы и состоят из слэша и одного из символов алфавита языка:

`\b' возврат на шаг BS (BackSpase, #8),

`\f' перевод страницы FF (Form Feed, #12),

`\n' перевод строки LF (Line Feed, #10),

`\r' возврат каретки CR (Carriage return, #13),

`\t' горизонтальная табуляция HT (Horizontal Tabulation, #9),

`\'' апостроф

`\\' слэш

`\”' кавычка

3. действительные

Тип

Кол-во байтов

Диапазон

Точность представления

float

4

±3,4Ч10-38… ±3,4Ч1038

8 цифр

double

8

±1,7Ч10-308… ±1,7Ч10308

17 цифр

Предпочтительно при написании программ использовать данные типа double по тем же причинам, что и типа int;

4. логические (boolean) .

Все остальные типы данных в Java - ссылочные:

- строки (String),

- массивы (Array),

- объекты (Object),

- интерфейсы (Interface),

- перечисления (Enum).

4. Литералы (константы)

Литералы (константы) представляют собой величины, не изменяемые в процессе выполнения программы.

В Java используются константы следующих типов:

int - целые - целые числа в соответствующих целым типам (byte, short, int, long) диапазонах;

double - действительные - числа с дробной частью в соответствующих действительным типам (float, double) диапазонах; их можно записывать в двух формах:

форме с фиксированной запятой: 3.14, -5.25,

форме с плавающей запятой: 2.5e-4, -0.123E15, 31.4159265e+5.

Все действительные константы хранятся в памяти компьютера в формате типа double. Если в конце константы поставить букву f, то она будет храниться в формате типа float: 3.14f,

-0.123e-15f;

char - символьные - все символы языка Java, заключенные в апострофы: `a', `5', `?'. Все символы, включая исходный текст программы, переводится компилятором в Unicode. Компилятор и исполняющая система Java работают только с кодировкой Unicode;

String - строковые - последовательности символов, заключенные в кавычки:

Это программа студентки Даши, “This is a character string”,

“Введите исходные данные:”

В строковую константу могут быть включены ESC-последовательности, рассматриваемые как один отдельный символ:

“\nВведите исходные данные:”

При выводе этой константы на консоль сначала будет сделан перевод на новую строку, а затем выведено сообщение:

Введите исходные данные:

Внимание! Строки нельзя начинать на одной строке исходного кода программы, а заканчивать на другой!

Обратите внимание на разницу между строковой константой из одного символа, например, A , и похожей символьной константой `A';

5. - boolean - логические - это две константы:

true - истина,

false - ложь.

5. Комментарии

Программа без комментариев - первый признак непрофессионализма.

Комментарии можно начинать или двумя знаками деления:

// это однострочный комментарий

или заключать между символами-скобками /* */:

/* это

многострочный

комментарий */

Часто используется многострочный комментарий документационной информации:

/** это

многострочный

комментарий

документационной

информации */

Он выделяет данные справочного характера.

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

Рекомендуется использовать //-комментарии для пояснений, а скобки /* */ применять для временного исключения программных блоков при отладке программы.

6. Переменные

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

В программировании термин переменная означает область оперативной памяти, в которой хранятся данные определенного типа. У переменной есть тип, имя и конкретное значение. Имя переменной можно рассматривать как адрес первого байта области памяти, в которой она хранится. Знание этого адреса дает возможность пользователю изменять значение переменной в процессе выполнения программы.

Таким образом, понятие переменной употребляется для обозначения величины, которая при работе программы может принимать различные значения. Каждая переменная должна иметь свое имя-идентификатор. Имена переменных программист выбирает сам, руководствуясь следующими правилами:

- имя переменной должно отражать ее смысл, то есть то, что с помощью этой переменной вычисляется,

- не допускается совпадение имени переменной со служебными словами и именами методов классов,

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

- имя должно начинаться с буквы или символа подчеркивания,

- совпадающие имена, состоящие из строчных и прописных букв, считаются различными: name и NAME - различные имена,

- если имя состоит из одного слова, то оно пишется в нижнем регистре: i, j, name,

- если имя состоит из нескольких слов, то каждое последующее слово начинается с заглавной буквы: myName, firstArray,

- символ подчеркивания рекомендуется для разделения составных имен констант и пакетов, причем имена констант пишутся в верхнем регистре: JOptionPane.ERROR_MESSAGE.

Переменные в Java могут иметь один из следующих типов:

int - целый,

double - действительный,

char - символьный,

boolean - логический,

String - строковый.

Диапазон допустимых значений переменных совпадает с диапазоном допустимых значений констант того же типа:

int: -2 147 483 648…2 147 483 647,

double: ±1,7Ч10-308…±1,7Ч10+308,

char: 0…65736.

Перед своим использованием любая переменная должна быть описана (объявлена): указан тип и имя переменной, а также по возможности инициализирована - ей присвоено начальное значение.

Самое простое описание включает в себя тип переменной и ее имя:

int i,j,k; //переменные i, j, k - целого типа

double x,y; //переменные x, y - действительного типа

char symbol; //переменная symbol - символьного типа

Желательна инициализация переменных при их описании:

int i=1, j=0, k=2;

double x=0.25, y=-1.5e-9;

char symbol='W';

Если при описании переменной использованы модификаторы public final, то это означает, что значение переменной нельзя изменять в программе. Такую переменную называют именованной константой. Она обязательно должна быть инициализирована, и ее имя задается в верхнем регистре:

public final int VALUE=1; //именованная целая константа //VALUE

public final double MIN=0.25;//именованная действительная

// константа MIN

public final char NAME='W'; //именованная символьная константа

//NAME

7. Математические функции

Математические функции служат для вычисления некоторых часто встречающихся тригонометрических и элементарных функций. Они доступны через статические методы класса Math.

Аргументы математических функций могут иметь типы double, float или int, причем все функции, кроме abs(), round(), ceil(), floor() и rint() возвращают значения типа double, а эти - типа int. Углы в тригонометрических функциях задаются в радианах:

sin(x) sin x

cos(x) cos x

tan(x) tg x

asin(x) arcsin x

acos(x) arccos x

atan(x) arctg x

atan2(x,y) arctg x/y

sinh(x) sh x гиперболический синус (ex - e-x)/2

cosh(x) ch x гиперболический косинус (ex + e-x)/2

tanh(x) th x гиперболический тангенс

exp(x) ex

log(x) ln x

log10(x) lg x

pow(x,y) xy ошибка, если x=0 и y<=0 или

если x<0 и y не целое

sqrt(x) корень квадратный

cbrt(x) корень кубический

hypot(x, y) длина гипотенузы по двум катетам

ceil(x) наименьшее целое, большее или равное х:

ceil(5.0) = 5

ceil(5.4) = 6

ceil(5.8) = 6

floor(x) наибольшее целое, меньшее или равное x -

выделение целой части числа:

floor(5.0) = 5

floor(5.4) = 5

floor(5.8) = 5

round(x) округление аргумента:

round(5.0) = 5

round(5.4) = 5

round(5.8) = 6

rint(x) ближайшее к x целое

abs(x) |x| x - целое

min(x,y) минимальный из двух аргументов

max(x,y) максимальный из двух аргументов

toDegrees() преобразование радиан в градусы

toRadians() преобразование градусов в радианы

random() псевдослучайное действительное число в диапазоне от 0.0 до 1.0 (не включая 1.0)

Кроме математических функций, в классе Math заданы две константы:

Math.PI число р 3,14159265358979323846

Math.E число e 2,7182818284590452354

Для получения случайных чисел можно воспользоваться методом Math.random(), а можно воспользоваться возможностями, предоставляемыми классом Random:

nextBoolean() генерирование случайного логического значения

nextDouble() генерирование случайного числа типа double в диапазоне от 0 до 1

nextFloat() генерирование случайного числа типа float в диапазоне от 0 до 1

nextInt(k) генерирование случайного числа типа int в диапазоне от 0 до k-1

nextLong() генерирование случайного числа типа long

nextGaussian() генерирование случайного числа для стандартного нормального распределения

8. Выражения

В любой программе требуется производить вычисления. Для вычисления значений переменных используются выражения (формулы), которые состоят из операндов, знаков операций и скобок.

Операнды задают данные для вычислений. Операции задают действия, которые необходимо выполнить. Каждый операнд, в свою очередь, является выражением или одним из его частных случаев, например, константой или переменной. Операции выполняются в соответствии с приоритетами. Для изменения порядка выполнения операций используются круглые скобки.

Итак, под выражением понимается последовательность констант, переменных и математических функций, связанных знаками операций и скобками. В зависимости от типа операндов (констант, переменных или функций), используемых в выражениях, они могут иметь целый, действительный или логический тип.

8.1 Выражения целого типа

В этих выражениях используются операнды целого или символьного типов, связанные круглыми скобками и знаками арифметических и побитовых операций.

К арифметическим операциям относятся:

+ сложение 3 + 2 = 5

- вычитания 5 - 2 = 3

* умножение 3 * 2 = 6

/ деление нацело 5 / 3 = 1

% остаток от деления 5 % 3 = 2

5 % 2 = 1

5 % 1 = 0

5 % 5 = 0

2 % 3 = 2

++ инкремент x++ = x + 1

++x = x + 1

-- декремент x-- = x - 1

--x = x - 1

Как и в языке Си, в выражения целого типа языка Java могут входить и операнды символьного типа (char), при этом операции выполняются над кодами символьных констант, а результат может быть выражен или целым числом, или символом:

`A' + 3 = `D'

`A' + 3 = 68

`a' - 32 = `A'

`a' - 32 = 65

`0' + 1 = 49

`0' + 1 = `1'

Если в выражении целого типа встречаются операнды различных типов, то производится автоматическое преобразование типов к одному, самому длинному:

- если хотя бы один из операндов имеет тип long, то и другие преобразуются в операнды типа long, и результат будет иметь тоже тип long,

- во всех остальных случаях операнды преобразуются к типу int.

Побитовые операции выполняются над двоичными кодами операндов, над каждым разрядом кода отдельно. К ним относятся:

& И 5&3 = 1 101 = 5

&

011 = 3

___

001 = 1

| ИЛИ 5|3 = 7 101 = 5

|

011 = 3

___

111 = 7

^ исключающее ИЛИ 5^3 = 6 101 = 5

^

011 = 3

___

110 = 6

Приоритет выполнения операций:

- изменение знака

++ инкремент

-- декремент

Эти операции имеют наивысший приоритет и выполняются в выражениях справа налево.

За ними следуют операции:

*, /, % операции типа умножения

+, - операции типа сложения

& побитовое И

^ исключающее ИЛИ

| побитовое ИЛИ

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

Примеры записи выражений целого типа:

5*x*x*x

a*b/c + c/(a*b)

Примеры вычислений выражений целого типа:

(5&3) + (5|3)= 8

(int)(Math.ceil(5.9) % Math.floor(5.9) + Math.round(5.9)) = 7

(int)(Math.rint(2.7) / Math.round(2.7) + 3%5) = 4

8.2 Выражения действительного типа

В выражениях действительного типа используются операнды целого и действительного типов Java, связанные знаками арифметических операций и круглыми скобками.

К арифметическим операциям относятся:

+ сложение 3.2 + 2.5 = 5.7

- вычитания 5.8 - 2.5 = 3.3

* умножение 3.5 * 2.0 = 7.0

/ деление 5.5 / 2.0 = 2.25

% остаток от деления 5.2 % 2.3 = 0.6

2.3 % 5.2 = 2.3

++ инкремент x++ = x + 1.0

++x = x + 1.0

-- декремент x-- = x - 1.0

--x = x - 1.0

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

если хотя бы один из операндов имеет тип double, то и другие преобразуются в операнды типа double, и результат будет иметь тоже тип double.

Примеры записи выражений действительного типа

2.5 + 0.97*b*b

0.2e-4*x - 5.0e-12*y

Примеры вычислений выражений действительного типа:

Math.ceil(Math.log(1.0)) + Math.ceil(Math.exp(0.0))- Math.round(Math.pow(2.0,0)) = 0

Math.floor(Math.pow(Math.pow(1.6,2), Math.pow(2.0,1))) - Math.ceil(Math.pow(1.41,2)) = 4

Math.ceil(Math.sqrt(2.0)) + Math.floor(Math.sqrt('D'-'A')) - (3|4)

= -4

Math.ceil(Math.sqrt(10.0)) - Math.floor(Math.sqrt(3.0)) - 3%5 = 0

8.3 Выражения логического типа

В языке Java используются три логические операции:

! НЕ отрицание, инверсия,

|| ИЛИ логическое сложение, дизъюнкция,

&& И логическое умножение, конъюнкция

и шесть операций сравнения:

== равно,

!= не равно,

> больше,

>= больше или равно,

< меньше,

<= меньше или равно.

Внимание! Операция равно в Java, как и в Си обозначается двумя знаками равенства: ==

Результатами логических операций и операций сравнения могут быть две константы:

true - истина,

false - ложь.

Приоритет выполнения операций:

! НЕ

>, >=, <, <= операции сравнения

==, != операции равенства

&& логическое И

|| логическое ИЛИ

9. Операторы присваивания

Операторы присваивания служат для вычисления значений выражений и присваивания вычисленных значений переменным.

Оператор присваивания имеет вид:

x = s;

где x - имя переменной,

s - выражение того же типа,

= - знак присваивания.

Оператор присваивания дает команду компьютеру на вычисление значения выражения справа от знака присваивания и запись вычисленного значения в ячейку памяти, отведенную для хранения переменной, стоящей слева от знака присваивания.

При этом прежнее значение переменной аннулируется. Поэтому в программировании можно использовать, например, такие операторы присваивания:

y = y + 5;

Выполняя его, компьютер возьмет старое значение переменной y и увеличит его на 5, после чего полученное новое значение этой переменной снова запишет в отведенную для нее ячейку памяти.

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

10.5 = x;

a + b = y + 5.2;

Присваивание в Java может быть организовано несколькими способами:

как оператор присваивания:

a = 5;

как оператор-выражение:

a++;

как операция, встречающаяся в выражении несколько раз, при этом операции присваивания выполняются справа налево:

a = b = c = 5;

как операция, если стоит внутри других операций:

a = (b = 1) + 4;

Сначала переменной b будет присвоено значение 1, а затем к результату, полученному в скобках, будет прибавлено 4. Таким образом, одним оператором присваивания будут присвоены значения сразу двум переменным:

b = 1, a = 5

Операции присваивания, изменяющие старые значения переменных, реализуются в Java объединенными арифметическими или побитовыми операциями присваивания:

исходный оператор объединенный оператор

a = a + 5; a+=5;

a = a - 3; a-=3;

a = a * 4; a*=4;

a = a / 6; a/=6;

a = a % 2; a%=2;

a = a + b / c; a+=b/c;

a = a & 3; a&=3;

a = a | 2; a|=2;

a = a * b / c; a*=b/c;

a = a * (b + c); a*=b + c;

Эти операции, как и сама операция присваивания, имеют самый низкий приоритет и выполняются в выражениях последними справа налево, поэтому, например, замена

a = a / b *c; на a/=b * c;

будет неверна - получаются различные выражения.

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

- при префиксной записи (знак перед переменной) сначала изменяется значение этой переменной, а затем выполняются другие операции, и последней - операция присваивания:

a = 4;

b = ++a; // a=5, b=5

c = ++b/2; // b=6, c=3

d = ++a/2; // a=6, d=3

- при постфиксной записи (знак после переменной) сначала вычисляется значение выражения со старыми значениями переменных, выполняется операция присваивания, после чего выполняются операции инкремента или декремента:

a = 4;

b = a++; // b=4, a=5

c = b++/2; // c=2, b=5

d = a++/2; // d=2, a=6

В Java приветствуется присваивание начальных значений переменным при их описании - инициализация переменных:

int i=5;

float x=3.1415;

char c='A';

Инициализировать переменные можно и выражениями, операндами которых являются константы:

int k=117*16;

float x= 3.1415*2.0e-3;

Внимание! Если значения переменных не заданы при их описании, то они автоматически не инициализируются!

В этом случае при компиляции программы будет выведено сообщение об ошибке:

Variable имяПеременной might not have been initialized

(Переменная имяПеременной, возможно, не была инициализирована)

Примеры записи операторов присваивания:

1.

int a=1;

int b=2;

int c=3;

double x=2.0;

a+= ++a / b++ % (int)(c-= Math.ceil(Math.sqrt(x))); // a=1 b=3 c=1

b+= (a | c++) - ++a % (int) Math.floor(Math.sqrt(x));//a=2 b=4 c=2

c|= --b % a--; // a=1 b=3 c=2

2.

int a=3;

int b=2;

int c=1; // a=2 b=3 c=4

b|= ++a / (c+= b++); // a=3 b=3 c=7

a%= --a - ++b; // a=1 b=4 c=7

3.

int a=0;

int b=0;

int c=0;

c+= b++; // a=0 b=1 c=0

b+= ++c % ('A' / '1' + 'A' % '1' % 5); // a=0 b=2 c=1

a-= ++b - c++; // a=-2 b=3 c=2

10. Ввод и вывод данных

Программы на алгоритмических языках обычно составляются таким образом, чтобы они могли быть использованы при различных наборах входных данных. При этом входные данные не задаются в программе при инициализации переменных, именованными константами или операторами присваивания, а помещаются отдельно от программы, например, в виде файла на внешнем носителе или входного потока с клавиатуры. В самой же программе предусматривается возможность ввода требуемых значений с устройств ввода (клавиатуры, магнитного диска) в оперативную память компьютера и вывода результатов вычислений из памяти на внешние носители информации (экран терминала, магнитный диск, принтер).

Под вводом данных понимаются операции передачи данных с внешних устройств ввода в оперативную память компьютера, а под выводом - из оперативной памяти на внешние устройства хранения информации.

Для того чтобы отвлечься от особенностей конкретных устройств ввода/вывода, в Java употребляется понятие потока (stream). Считается, что в программу идет входной поток (input stream) символов Unicode или просто байтов, воспринимаемый в программе методами read(). Из программы методами write(), print(), println(), printf() выводится выходной поток (output stream) символов или байтов. При этом неважно, куда направлен поток: на консоль, на принтер, в файл, базу данных или сеть - методы write(), print() ничего об этом не знают.

Эти потоки определены в классе System статическими полями in, out и err. Их можно использовать без всяких дополнительных определений. Они называются соответственно стандартным вводом, стандартным выводом и стандартным выводом сообщений. Эти стандартные потоки могут быть соединены с разными конкретными устройствами ввода/вывода.

Поток err предназначен для вывода системных сообщений программы: при трассировке, сообщений об ошибках или в процессе выполнения программы. Как правило, такие сообщения заносятся в специальные журналы, называемые log-файлами, а не выводятся на консоль.


Подобные документы

  • История создания языка Java. Основные принципы объектно-ориентированного программирования. Структура, особенности синтаксиса и примеры прикладных возможностей использования языка Java, его преимущества. Перспективы работы программистом на языке Java.

    курсовая работа [795,9 K], добавлен 14.12.2012

  • Понятие и общая характеристика языка программирования РНР, принципы и этапы его работы, синтаксис и ассоциируемые массивы. Обработка исключений в языке Java. Работа с базами данных с помощью JDBC. Изучение порядка разработки графического интерфейса.

    презентация [192,3 K], добавлен 13.06.2014

  • Программирование ввода-вывода на основе потоков в Java. Классы для работы с потоками символов. Характеристика базовых классов. Пример чтения сетевого ресурса. Коллекции как расширение возможностей массивов. Работа с ассоциативными массивами HashMap.

    лекция [630,1 K], добавлен 01.05.2014

  • Создание языка программирования с помощью приложения "Java". История названия и эмблемы Java. Обзор многообразия современных текстовых редакторов. Обработка строки. Методы в классе String. Java: задачи по обработке текста. Примеры программирования.

    курсовая работа [276,1 K], добавлен 19.07.2014

  • Кратка историческая справка развития языка Java. Анализ предметной области. Java platform, enterprise and standart edition. Апплеты, сервлеты, gui-приложения. Розработка программного кода, консольное приложение. Результаты работы апплета, сервлета.

    курсовая работа [549,2 K], добавлен 23.12.2015

  • Язык Java как простой, обьектно-ориентированный, многопоточный язык программирования, разработанный компанией Sun Microsystems для расширения возможностей сети Internet. Типы данных, лексика и управляющие структуры данного языка программирования.

    презентация [46,1 K], добавлен 25.04.2014

  • История развития языка программирования Java. История тетриса - культовой компьютерной игры, изобретённой в СССР. Правила проведения игры, особенности начисления очков. Создание интерфейса программы, ее реализация в среде Java, кодирование, тестирование.

    курсовая работа [168,1 K], добавлен 27.09.2013

  • Архитектура Java и Java RMI, их основные свойства, базовая система и элементы. Безопасность и виртуальная Java-машина. Интерфейс Java API. Пример использования приложения RMI. Работа с программой "Calculator". Универсальность, портативность платформ.

    курсовая работа [208,6 K], добавлен 03.12.2013

  • Описание и установка интегрированной среды разработки Eclipse. Описание языка Java. Описание классов и методов, пакетов, использованных в программе, сервера и клиента. Разработка руководства пользователя для клиента и сервера. Пример работы чата.

    курсовая работа [443,5 K], добавлен 18.05.2015

  • Динамическая инициализация объектов в Java с помощью зарезервированного слова new. Порядок вызовов при создании объекта. Порядок выполнения операторов при наличии блоков инициализации. Чтение и запись файлов в программе, иерархия классов ввода/вывода.

    контрольная работа [120,6 K], добавлен 07.06.2011

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.