Вы здесь: Главная >> 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 (многовариантное ветвление)
Сергей Владимирцев
03.02.2011