ИСПОЛЬЗОВАНИЕ ПЕРЕМЕННЫХ Переменная – это именованная ячейка памяти, которой может
быть присвоено значение в программе. Во время выполнения программы значение переменной может изменяться. В следующем примере программы демонстрируются способы объявления переменной и присвоения ей значения. Как следует из комментариев в начале программы, ее исходному файлу следует присвоить имя 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