дХОКНЛМШЕ ПЮАНРШ, ЙСПЯНБШЕ ОПНЕЙРШ МЮ ГЮЙЮГ, ЙНМРПНКЭМШЕ ПЮАНРШ МЮ ГЮЙЮГ

 

мЮВЕПРЮРЕКЭМЮЪ ЦЕНЛЕРПХЪ оПЮЙРХЙСЛ ОН ПЕЬЕМХЧ ГЮДЮВ цЕНЛЕРПХВЕЯЙНЕ ВЕПВЕМХЕ хМФЕМЕПМЮЪ ЦПЮТХЙЮ еяйд йПЮРМШЕ ХМРЕЦПЮКШ лЮРЕЛЮРХВЕЯЙХИ ЮМЮКХГ лЮРПХЖШ оПЕДЕКШ оПНХГБНДМШЕ бЕЙРНПМЮЪ ЮКЦЕАПЮ хМРЕЦПЮКЭМНЕ ХЯВХЯКЕМХЕ ртйо ъДЕПМЮЪ ТХГХЙЮ щКЕЙРПНЯРЮРХЙЮ лЮЦМЕРХГЛ нОРХЙЮ хМТНПЛЮЖХНММШЕ РЕУМНКНЦХХ

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

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

Массивы в языке 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.
Предыдущий разделУровень вышеСледующий раздел