Основы программирования на Java - [5]
>double matrix [][] = new double [5][];
>matrix [0] = new double[2];
>matrix[l] =new double[2];
>matrix[2] = new double[2];
>matrix[3] = { 0,1};
>matrix[4] = { 2,3};
В следующем примере создается матрица размером 4 на 4 с элементами типа double, причем ее диагональные элементы (те, для которых х==у) заполняются единицами, а все остальные элементы остаются равными нулю.
>class Matrix {
>public static void main(String args[]) {
>double m[][]; m = new double[4][4];
>m[0][0]=l;
>m[l][l] = l;
>m[2][2] = l;
>m[3][3] = l;
>System.out.println(m[0][0] +" "+ m[0][l] +" "+ m[0][2] +" "+ m[0][3]);
>System.out.println(m[1][0] +" "+ m[l][l] +" "+ m[l][2] +" "+ m[l][3]);
>System.out.println(m[2][0] +" "+ m[2][l] +" "+ m[2][2] +" "+ m[2][3]);
>System.out.println(m[3][0] +" "+ m[3][l] +" "+ m[3][2] +" "+ m[3][3]);
>}
>}
Запустив эту программу, вы получите следующий результат:
>1000
>0100
>0010
>0001
Обратите внимание — если вы хотите, чтобы значение элемента было нулевым, вам не нужно его инициализировать, это делается автоматически. Для задания начальных значений массивов существует специальная форма инициализатора, пригодная и в многомерном случае. В про1рамме, приведенной ниже, создается матрица, каждый элемент которой содержит произведение номера строки на номер столбца. Обратите внимание на тот факт, что внутри инициализатора массива можно использовать не только литералы, но и выражения.
>class AutoMatrix {
>public static void main(String args[]) {
>double m[][]={
>{ 0*0,1*0,2*0,3*0 }, { 0*1,1*1,2*1,3*1 }, { 0*2.1*2,2*2,3*2 },
>{0*3,1*3.2*3,3*3 } };
>System.out.println(m[0][0] +" "+ m[0][l] +" "+ m[0][2] +" "+ m[0][3]);
>System.out.println(m[ 1 ][0] +" "+m[l][l] +" "+m[l][2] +" "+m[l][3]);
>System.out.println(m[2][0] +" "+m[2][l] +" "+m[2][2] +" "+ m[2][3]);
>System.out.println(m[3][0] +" "+m[3][l] +" "+ m[3][2] +" "+ m[3][3]);
>}
>}
Запустив этупрограмму, вы получите следующий результат:
>0000
>0123
>0246
>0369
4. ОПЕРАТОРЫ
Операторы в языке Java — это специальные символы, которые сообщают транслятору о том, что вы хотите выполнить операцию с некоторыми операндами. Типы операций указываются с помощью операторов, а операнды - это переменные, выражения или литералы. Некоторые операторы требуют одного операнда, их называют унарными. Одни операторы ставятся перед операндами и называются префиксными, другие — после, их называют постфиксными операторами. Большинство же операторов ставят между двумя операндами, такие операторы называются инфиксными бинарными операторами. Существует тернарный оператор, работающий с тремя операндами. В Java имеется 44 встроенных оператора. Их можно разбить на 4 класса — арифметические, битовые, операторы сравнения и логические.
Арифметические операторы используются для вычислений так же как в алгебре (см. таблицу со сводкой арифметических операторов ниже). Допустимые операнды должны иметь числовые типы. Например, использовать эти операторы для работы с логическими типами нельзя, а для работы с типом char можно, поскольку в Java тип char — это подмножество типа int.
Таблица 4.1. Таблица арифметических операторов
№ | Оператор | Результат | Оператор | Результат |
1 | + | Сложение | + = | Сложение с присваиванием |
2 | - | Вычитание (также унарный минус) | - = | Вычитание с присваиванием |
3 | * | Умножение | * = | Умножение с присваиванием |
4 | / | Деление | / = | Деление с присваиванием |
5 | % | Деление по модулю | % = | Деление по модулю с присваиванием |
6 | ++ | Инкремент | -- | Декремент |
Ниже в качестве примера, приведена простая программа, демонстрирующая использование операторов. Обратите внимание на то, что операторы работают как с целыми литералами, так и с переменными.
>class BasicMath {
>public static void int a = 1 + 1;
>int b = a* 3;
>main(String args[]) {
>int с = b / 4;
>int d = b - a;
>int e = -d;
>System.out.print("a = " + a);
>System.out.print("b = " + b);
>System.out.print("c = " + c);
>System.out.print("d = " + d);
>System.out.println("e =” + e);
>}
>}
Исполнив этупрограмму, вы должны получить приведенный ниже результат:
>a = 2
>b = 6
>c = 1
>d = 4
>e = -4
Оператор деления по модулю - оператор mod, обозначается символом %. Этот оператор возвращает остаток от деления первого операнда на второй. Функция mod в Java работает не только с целыми, но и с вещественными типами. Приведенная ниже программа иллюстрирует работу этого оператора.
>class Modulus {
>public static void main (String args []) {
>int x = 42;
>double у = 42.3;
>System.out.print("x mod 10 = " + x % 10);
>System.out.println("y mod 10 = " + у % 10);
>}
>}
Выполнив эту программу, вы получите следующий результат:
х mod 10 = 2 у mod 10 = 2.3
Для каждого из арифметических операторов есть форма, в которой одновременно с заданной операцией выполняется присваивание. Если требуется написать а += 4, то с таким же успехом можно использовать а = а +4.
Такой способ пригоден для всех бинарных операторов, которые используются в выражениях вида:
>переменная = переменная оператор выражение;
Любой такой оператор можно записать в короткой форме:
переменная оператор = выражение;
В Java существует два оператора, называемых операторами инкремента и декремента (++ и --) и являющихся сокращенным вариантом записи для сложения или вычитания из операнда единицы. Эти операторы уникальны в том плане, что могут использоваться как в префиксной, так и в постфиксной форме. При использовании префиксной формы операнд модифицируется перед выполнением операции. В постфиксной форме сначала используется содержимое операнда, а лишь после этого операнд инкрементируется или декрементируется. Следующий пример иллюстрирует использование операторов инкремента и декремента.
![Графика для Windows средствами DirectDraw](/storage/book-covers/6d/6dbc78361f37e9af5b71d5019ca64570a40e0466.jpg)
В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.
![Виртуальная библиотека Delphi](/build/oblozhka.dc6e36b8.jpg)
В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.
![Пишем драйвер Windows на ассемблере](/build/oblozhka.dc6e36b8.jpg)
В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.
![Как писать драйвера](/build/oblozhka.dc6e36b8.jpg)
В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.
![MFC и OpenGL](/build/oblozhka.dc6e36b8.jpg)
В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.
![Информационная технология. Оценка программной продукции характеристики качества и руководства по их применению](/build/oblozhka.dc6e36b8.jpg)
Стандарт подготовлен на основе применения аутентичного текста международного стандарта ИСО/МЭК 9126-91 «Информационная технология. Оценка программной продукции. Характеристики качества и руководства по их применению»Information technology. Software product evaluation. Quality characteristics and guidelines for their use.