йНМЯОЕЙР ОН МЮВЕПРЮРЕКЭМНИ ЦЕНЛЕРПХХ хМФЕМЕПМЮЪ ЦПЮТХЙЮ юПУХРЕЙРСПЮ щбл хМТНПЛЮРХЙЮ Х ХМТНПЛЮЖХНММШЕ РЕУМНКНЦХХ

Предыдущий разделУровень вышеСледующий раздел

Массивы и ввод данных

Массивы в языке Java очень похожи на массивы в Ruby, но все их элементы обязаны иметь один и тот же тип. Другими словами, возможен массив целых чисел или массив строк, но недопустим массив, содержащий и то и другое. Как и все другие переменные, массив должен быть объявлен до своего использования.

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

RubyJava
Объявление массива
 myArray = [] 
 int myArray[]; 
Выделение памяти
 myArray = Array.new(10) 
 myArray = new int[10]; 
Инициализация массива
 myArray[0] = 10 myArray[5] = 100 
 myArray[0] = 10; myArray[5] = 100; 
Объявление с инициализацией
 myArray = [1,2,3,4] 
 myArray[] = {1,2,3,4}; 
Длина массива
 i = myArray.length 
 
int i = myArray.length; 
Доступ к элементу массива
 i = myArray[0] 
 int i = myArray[0]; 
Выход за границы массива
 i = myArray[1000] # i = nil 
 int i = myArray[1000]; // ошибка 
Язык Java допускает совмещение объявления массива с выделением памяти:
 int myArray[] = new int[10]; 

Аналогично Ruby язык Java поддерживает работу с многомерными массивами. К элементам таких массивов можно добраться, последовательно указывая их индексы. Например,

 int a[][] = { {1,2,3}, {4,5,6}, }; // либо int b[] = new int [2][3]; 
b[0][0] = 1; b[0][1] = 2; b[0][2] = 2; b[1][0] = 4; b[1][1] = 5; b[1][2] = 6; 
Сравните это с фрагментом программы на Ruby:
 a = [ [1, 2, 3], [4, 
5, 6], ] // либо b[0][0] = 1; b[0][1] = 2; b[0][2] = 2; b[1][0] = 4; b[1][1] = 
5; b[1][2] = 6; 

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


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

 
import java.io.*; class TestInput { public static void main(String[] args) throws 
Exception{ BufferedReader r = new BufferedReader( new InputStreamReader(System.in)); 
int a; double x; String str; System.out.print("Ведите строку: "); str = r.readLine(); 
System.out.print("Введите целое число: "); a = Integer.parseInt(r.readLine()); 
System.out.print("Введите действительное" + " число: "); x = Double.parseDouble(r.readLine()); 
System.out.println("str=" + str + ", a=" + a + ", x=" + x); } } 

Ключевое слово import служит для подключения дополнительных библиотек. В нашем примере подключается пакет классов, отвечающий за ввод/вывод (input/output). BufferedReader создает входной поток данных для получения информации с клавиатуры. Метод readLine, знакомый нам по Ruby, возвращает введенную строку, а заменой методов to_i и to_f (преобразований строки в числа) в языке Java являются:

После запуска этой программы ввод каждой "порции" данных завершается нажатием клавиши Enter.
Предыдущий разделУровень вышеСледующий раздел

мЮВЕПРЮРЕКЭМЮЪ ЦЕНЛЕРПХЪ Х ХМФЕМЕПМЮЪ ЦПЮТХЙЮ, ОЕПЯОЕЙРХБЮ