Материал: LW №7. Java. Foundations

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

ИСПОЛЬЗОВАНИЕ ПЕРЕМЕННЫХ Переменная – это именованная ячейка памяти, которой может

быть присвоено значение в программе. Во время выполнения программы значение переменной может изменяться. В следующем примере программы демонстрируются способы объявления переменной и присвоения ей значения. Как следует из комментариев в начале программы, ее исходному файлу следует присвоить имя Example2.java.

/*Пример №2. Присвоить исходному файлу имя "Example2.java"*/ class Example2 {

public static void main(String args[]) {

int num; //объявляется переменная с именем num

num = 100; //переменной num присваивается значение 100 System.out.println("Этo переменная num: " + num);

num = num * 2;

System.out.print("Знaчeниe переменной num*2 равно "); System.out.println(num);

}}

Результаты работы программы:

В первой строке метода main() объявляется целочисленная переменная num. В Java требуется, чтобы переменные были объявлены до их применения. Ниже приведена общая форма объявления переменных.

тип имя_переменной;

В этом объявлении тип обозначает конкретный тип объявляемой переменной, а имя_переменной – имя переменной. Если требуется объявить несколько переменных одного типа, то это можно сделать в виде разделенного запятыми списка имен переменных. В Java определен целый ряд типов данных, в том числе целочисленный, символьный и числовой с плавающей точкой. Ключевое слово int обозначает целочисленный тип. В приведенной ниже строке кода из рассматриваемого здесь примера программы переменной num присваивается значение 100. В Java операция присваивания обозначается одиночным знаком равенства.

num = 100; //переменной num присваивается значение 100

В следующей строке кода выводится на экран значение переменной num, которому предшествует текстовая строка "Это переменная num:":

System.out.println("Этo переменная num:" + num);

6

Вэтом операторе знак + присоединяет значения переменной num в конце предшествующей ему текстовой строки, а затем выводится результирующая строка. На самом деле значение переменной num сначала преобразуется из целочисленного в строковый эквивалент, а затем объединяется с предшествующей строкой. С помощью операции + в одном вызове метода println() можно объединить нужное количество символьных строк.

Вследующей строке кода из рассматриваемого здесь примера программы переменной num присваивается хранящееся в ней значение, умноженное на 2. Как и в большинстве других языков программирования, в Java знак * обозначает арифметическую операцию умножения. После выполнения этой строки кода переменная num будет содержать значение 200.

System.out.print("Знaчeниe переменной num * 2 равно "); System.out.println(num);

В этих строках метод print() вызывается для вывода текстовой строки "Значение переменной num * 2 равно". После этой строки не следует символ новой строки. Таким образом, следующий результат будет выводиться в той же самой строке. Метод print() действует аналогично методу println(), за исключением того, что после каждого вызова он не выводит символ новой строки. Методы print() и println() могут служить для вывода значений любых встроенных в Java типов данных.

УСЛОВНЫЙ ОПЕРАТОР IF

Оператор if действует подобно условному оператору в любом другом языке программирования. Более того, его синтаксис такой же, как и условных операторов if в языках С, С++ и С#. Простейшая форма этого оператора выглядит следующим образом:

if(условие) оператор;

где условие обозначает логическое выражение. Если условие истинно, то оператор выполняется. А если условие ложно, то оператор пропускается. Рассмотрим следующую строку кода:

if(num <100) System.out.println("num меньше 100");

Если в данной строке кода переменная num содержит значение меньше 100, то условное выражение истинно и вызывается метод println(). А если переменная num содержит значение, большее или равное 100, то вызов метода println() пропускается.

B языке Java определен полный набор операторов сравнения, которые можно использовать в условном выражении. Следует иметь в виду, что

7

проверка на равенство обозначается двойным знаком равенства(==). Ниже приведен пример программы, демонстрирующий применение условного оператора if.

//Пример №3. Использование операторов сравнения class IfSample {

public static void main(String args[]) { int x, y;

x = 10; y = 20;

if(x < y) {System.out.println("x меньше у");} x = x * 2;

if(x == y) {System.out.println("x теперь равно у");} x = x * 2;

if(x > y) {System.out.println("x теперь больше у");} //этот оператор не будет ничего выводить

if(x == y) {System.out.println("вы не увидите этого");}

}}

Эта программа выводит следующий результат:

Обратите внимание на еще одну особенность данного примера программы. В строке кода

int х, у;

объявляются две переменные: х и у. Для этого используется список, разделяемый запятыми.

ОПЕРАТОР ЦИКЛА FOR

В Java поддерживаются разнообразные операторы цикла. Ниже приведена простейшая форма оператора for.

for(инициализация; условие; итерация) оператор;

В форме инициализация обозначает начальное значение переменной управления циклом, а условие – логическое выражение для проверки значения переменной управления циклом. Если результат проверки условия истинен, то выполнение цикла for продолжается. А если результат этой проверки ложен, то выполнение цикла прекращается. Выражение итерация определяет порядок изменения переменной управления циклом на каждом его шаге. В приведенном ниже примере программы демонстрируется применение оператора цикла for.

8

/*Пример №4. Демонстрация применения цикла for. Присвоить исходному файлу имя ForTest.java*/

class ForTest {

public static void main(String args[]) { int x;

for(x = 0; x < 10; x = x + 1) { System.out.println("Знaчeниe х:" + x);

}

}}

Эта программа выводит следующий результат:

В данном примере х служит переменной управления циклом. В инициализирующей части цикла for ей присваивается начальное нулевое значение. В начале каждого шага цикла, включая и первый, выполняется проверка условия х <10. Если результат этой проверки истинен, то в программе вызывается метод println(), а затем выполняется итерационная часть цикла for. Процесс продолжается до тех пор, пока результат проверки условия не окажется ложным.

Следует заметить, что в программах, профессионально написанных на Java, итерационная часть цикла почти никогда не встречается в том виде, в каком она представлена в данном примере. Иными словами, операция вроде следующей в таких программах встречаются крайне редко:

х = х + 1;

Дело в том, что в Java предоставляется специальная, более эффективная операция инкремента ++ (два знака "плюс" подряд). Операция инкремента увеличивает значение операнда на единицу. Используя эту операцию, предшествующее выражение можно переписать так:

х++;

ВJava предоставляется также операция декремента --, которая уменьшает значение операнда на единицу.

ИСПОЛЬЗОВАНИЕ БЛОКОВ КОДА

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

9

местах, где и отдельные операторы. Рассмотрим следующий условный оператор if:

if(x<у) { //начало блока х = у; у = 0;

}//конец блока

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

В следующей программе блок кода служит в качестве адресата для оператора цикла for:

/*Пример №5. Применение блока кода. Присвоить исходному файлу имя "BlockTest.java"*/

public class BlockTest {

public static void main(String args []) { int x, у;

у = 20; //адресатом этого оператора цикла служит блок кода

for( x = 0; x<10; x++) { System.out.println("Знaчeниe х: " + x); System.out.println("Знaчeниe у: " + у); у = у - 2;

}}}

Эта программа выводит следующий результат:

10