Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции по Java.doc
Скачиваний:
836
Добавлен:
04.06.2015
Размер:
5.55 Mб
Скачать

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

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

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

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

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

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

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

Поток in– это экземпляр классаInputStream. Стандартно он назначен на ввод с клавиатуры, который выполняется методамиread().

Поток out– это экземпляр классаPrintStream, организующего выходной поток байтов. Он выводит информацию на консоль (монитор) методамиprint(), println(), printf().

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

Все методы организации потоков собраны в классы пакета java.io.

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