Выбрать главу

Результат выполнения данной программы выглядит следующим образом: i does not equal zero j / i is 2.0

В данном примере адресатом оператора if служит не один оператор, а целый кодовый блок. Если условие, управляющее оператором if, принимает логическое значение true, как в данном случае, то выполняются все три оператора в кодовом блоке. Попробуйте присвоить переменной i нулевое значение и запустить программу на выполнение, и вы увидите, что ни один из операторов из кодового блока не будет выполнен, т.е. весь этот блок будет пропущен.

Как будет показано далее в книге, кодовые блоки обладают и другими свойствами и находят иное применение. Но главное их назначение — создание логически неделимых единиц кода. Точки с запятой и оформление исходного текста программы

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

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

В Java конец строки не считается окончанием оператора. Поэтому нё имеет значения, где именно он находится в строке кода. Например, в Java строки кода X = у; у = у + 1; System.out.println(х + " " + у);

означают то же самое, что и строка кода х = у; у = у + 1; System.out.println(х + " " + у);

Более того, каждый элемент оператора можно разместить в отдельной строке. Например, следующая запись вполне допустима: System.out.println("This is a long line of output" + x + у + z + "more output");

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

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

Пример для опробования 1.2. Усовершенствованный вариант преобразования галлонов в литры.

В рассматриваемой здесь усовершенство¬ ванной версии программы, преобразую¬ щей галлоны в литры и созданной в рамках первого проекта, используются цикл for, условный оператор if и кодовые блоки. В новой версии программы на экран выводится таблица преобразования значений от 1 до 100 галлонов. После каждых десяти галлонов отображается пустая строка. Это достигается благодаря переменной counter, которая подсчитывает число выведенных строк. Обратите внимание на особенности применения этой переменной.

Последовательность действий

Создайте новый файл GalToLitTable .java.

Введите в этот файл следующий код программы: /* Пример для опробования 1.2 Эта программа отображает таблицу преобразования галлоны в литры. Присвоить ее исходному файлу имя GalToLitTable.java. */ class GalToLitTable { public static void main(String args[]) { double gallons, liters; int counter; // Первоначально в счетчике строк устанавливается нулевое значение. counter = 0; for(gallons = 1; gallons <= 100; gallons++) { liters = gallons * 3.7854; // преобразовать в литры System.out .println (gallons + 11 gallons is " + liters + " liters."); // Приращение счетчика строк происходит на каждом шаге цикла, //а через каждые десять строк выводится пустая строка. counter++; if(counter == 10) { System.out.println(); counter = 0; // сбросить счетчик строк } } } }

Скомпилируйте программу, указав в командной строке следующее:С>javac GalToLitTable.java

Запустите программу на выполнение из командной строки следующим образом:С>java GalToLitTable

В результате выполнения данной программы на экране появится следующий результат: 1.0 gallons is 3.7854 liters. 2.0 gallons is 7.5708 liters. 3.0 gallons is 11.356200000000001 liters. 4.0 gallons is 15.1416 liters. 5.0 gallons is 18.927 liters. 6.0 gallons is 22.712400000000002 liters. 7.0 gallons is 26.4978 liters. 8.0 gallons is 30.2832 liters. 9.0 gallons is 34.0686 liters. 10.0 gallons is 37.854 liters. 11.0 gallons is 41.6394 liters. 12.0 gallons is 45.424800000000005 liters. 13.0 gallons is 49.2102 liters. 14.0 gallons is 52.9956 liters. 15.0 gallons is 56.781 liters. 16.0 gallons is 60.5664 liters. 17.0 gallons is 64.3518 liters. 18.0 gallons is 68.1372 liters. 19.0 gallons is 71.9226 liters. 20.0 gallons is 75.708 liters. 21.0 gallons is 79.49340000000001 liters. 22.0 gallons is 83.2788 liters. 24.0 gallons is 90.84960000000001 liters 25.0 gallons is 94.635 liters. 26.0 gallons is 98.4204 liters. 27.0 gallons is 102.2058 liters. 28.0 gallons is 105.9912 liters. 29.0 gallons is 109.7766 liters. 30.0 gallons is 113.562 liters. Ключевые слова Java

В настоящее время в языке Java определено пятьдесят ключевых слов (табл. 1.1). Вместе с синтаксисом операторов и разделителями они образуют определение языка Java. Ключевые слова нельзя использовать в качестве имен переменных, классов или методов.

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

Помимо ключевых слов, в Java зарезервированы также логические значения true, falsennull. Их нельзя использовать для обозначения переменных, классов и других элементов программ.

Таблица 1.1. Ключевые слова Java abstract assert boolean break byte case catch char class const continue default do double else enum extends final finally float for goto if implements import instanceof int interface long native new package private protected public return short static strictfp super switch synchronized this throw throws transient try void volatile while Идентификаторы в Java

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

В Java символы нижнего и верхнего регистра различаются, т.е. myvar и MyVar — это имена разных переменных. Ниже приведен ряд примеров допустимых в Java идентификаторов. Test X У2 MaxLoad $up _top my_var sample23

Как упоминалось выше, идентификатор на может начинаться с цифры. Например, идентификатор 12х недопустим.

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

В примерах программ, представленных в этой главе, применяются два встроенных в Java метода: println () и print (). Эти методы являются членами класса System, который предопределен в Java и автоматически включается в состав любой программы. В более широком смысле среда Java включает в себя ряд встроенных библиотек классов, содержащих большое количество методов. Они обеспечивают поддержку ввода-вывода, операций с символьными строками, сетевого взаимодействия и отображения графики. Стандартные классы также реализуют оконный вывод. Таким образом, Java представляет собой сочетание собственно языка и стандартных классов. Как станет ясно в дальнейшем, многими своими функциональными возможностями язык Java обязан именно библиотекам классов. Поэтому научиться грамотно программировать Java невозможно, не усвоив стандартные классы. На протяжении всей остальной части книги вам будет встречаться описание различных классов и методов из стандартных библиотек. Но в одной книге невозможно описать все библиотеки, поэтому полученные знания основ Java вам придется пополнить в процессе самостоятельной работы. Упражнение для самопроверки по материалу главы 1