Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
GoslingJava2.doc
Скачиваний:
139
Добавлен:
23.02.2016
Размер:
2.39 Mб
Скачать

1.2.Переменные

Следующий пример выводит числа Фибоначчи— бесконечную последовательность, первые члены которой таковы:

1 1 2 3 5 8 13 21 34

Ряд чисел Фибоначчи начинается с 1 и 1, а каждый последующий его элемент представляет собой сумму двух предыдущих. Программа для печати чисел Фибоначчи несложна, но она демонстрирует объявление переменных, работу простейшего цикла и выполнение арифметических операций:

class Fibonacci {

/** Вывод чисел Фибоначчи < 50 */

public static void main(String[] args) {

int lo = 1;

int hi = 1;

System.out.println(lo);

while (hi < 50) {

System.out.println(hi);

hi = lo + hi; // Изменение значения hi

lo = hi — lo; /* Новое значение lo равно

старому hi, то есть сумме

за вычетом старого lo */

}

}

}

В этом примере объявляется класс Fibonacci, который, как и Hello World, содержит метод main. В первых строках метода main объявляются и инициализируются две переменные, hi и lo. Перед именем переменной должен быть указан ее тип. Переменные hi и lo относятся к типу int— то есть являются 32-разрядными целыми числами со знаком, лежащими в диапазоне от –232 до 232–1.

В языке Java имеется несколько встроенных, “примитивных” типов данных для работы с целыми, вещественными, логическими и символьными значениями. Java может непосредственно оперировать со значениями, относящимися к примитивным типам,— в отличие от объектов, определяемых программистом. Типы, принимаемые “по умолчанию”, в Java отсутствуют; тип каждой переменной должен быть указан в программе. В Java имеются следующие примитивные типы данных:

boolean одно из двух значений: true или false

char 16-разрядный символ в кодировке Unicode1.1

byte 8-разрядное целое (со знаком)

short 16-разрядное целое (со знаком)

int 32-разрядное целое (со знаком)

long 64-разрядное целое (со знаком)

float 32-разрядное с плавающей точкой (IEEE754-1985)

double 64-разрядное с плавающей точкой (IEEE754-1985)

В программе для вывода чисел Фибоначчи переменным hi и lo было присвоено значение 1. Начальные значения переменных можно задавать при их объявлении с помощью оператора = (это называется инициализацией). Переменной, находящейся слева от оператора=, присваивается значение выражения справа от него. В нашей программе переменная hi содержит последнее число ряда, а lo— предыдущее число.

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

Оператор while в предыдущем примере демонстрирует один из вариантов циклов в Java. Программа вычисляет выражение, находящееся в скобках после while,— если оно истинно, то выполняется тело цикла, после чего выражение проверяется снова. Цикл while выполняется до тех пор, пока выражение не станет ложным. Если оно всегда остается истинным, программа будет работать бесконечно, пока какое-либо обстоятельство не приведет к выходу из цикла— скажем, встретится оператор break или возникнет исключение.

Условие, проверяемое в цикле while, является логическим выражением, принимающим значение true или false. Логическое выражение, приведенное в тексте программы, проверяет, не превысило ли текущее число ряда значение50. Если большее число ряда (hi) меньше 50, то оно выводится, а программа вычисляет следующее число Фибоначчи. Если же оно больше или равно 50, то управление передается в строку программы, находящуюся после тела цикла while. В нашем примере такой строкой оказывается конец метода main, так что работа программы на этом завершается.

Обратите внимание на то, что в приведенном выше примере методу println передается целочисленный аргумент, тогда как в HelloWorld его аргументом была строка. Метод println является одним из многих методов, которые перегружаются (overloaded), чтобы их можно было вызывать с аргументами различных типов.

Упражнение 1.3

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

Упражнение 1.4

Напишите программу, которая генерирует другой числовой ряд,— например, таблицу квадратов (умножение выполняется с помощью оператора *— например, i * i).

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]