Изучаем Java

Вы здесь: Главная >> Java-учебник >> Блоки и условные операторы

Блоки и условные операторы в Java


Поток управления

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

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

Область видимости блока

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

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

public static void main (string [] args) {
int n; {

int k;

} // Переменная k определена только в этом блоке.
}

Однако в языке Java невозможно объявить одинаково названные переменные в двух вложенных блоках. Например, приведенный ниже фрагмент кода содержит ошибку и не будет скомпилирован.

public static void main(Strinq[] args)
{
int n; {

int k;
int n; // Ошибка -- невозможно переопределить переменную n во внутреннем блоке.

}
}

В языке C++ переменные во вложенных блоках можно переопределять. Внутреннее определение затем маскируется внешним. Это может привести к ошибкам, поэтому в языке Java такой возможности нет.

Условные операторы

Условный оператор в языке Java имеет вид:
if (условие) оператор

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

{
оператор1;
оператор2;
}

Например,

if (yourSales >= target)
{
performance = "Удовлетворительно" ;
bonus = 100;
}

В этом коде все операторы, заключенные в фигурные скобки, будут выполнены, если значение переменной YourSales больше значения переменной target или равно ему (рис. 3.7).

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

Рис. 3.7. Блок-схема оператора if

Более общий условный оператор в языке Java выглядит так (рис. 3.8).
if (условие) оператор1 else оператор2

Например,

if (yourSales >= target)
{
performance = "Удовлетворительно");
bonus = 100 + 0.01 * (yourSales - target);
}
else
{
performance = "Неудовлетворительно";
bonus = 0;
}

Часть else не является обязательной. Группы операторов else объединяются с ближайшим оператором if. Таким образом, в коде
if (х <= 0) if (х = = 0) sign = 0; else sign = -1;
оператор else соответствует второму оператору if.

Рис. 3.8. Блок-схема оператора /else

Часто встречаются также повторяющиеся операторы if (рис. 3.9).

Например,

if (yourSales >=2 * target)
{
performance = "Великолепно";
bonus = 1000;
}
else if (yourSales >= 1.5 * target)
{
performance = "Отлично";
bonus = 500;
}
else if (yourSales >= target)
{
performance = "Удовлетворительно" ;
bonus = 100;
}
else
{
System.out.println ( "Вы уволены" ) ;
}

Рис. 3.9. Блок-схема операторам if /else if (многовариантное ветвление)


Партнеры сайта