Java руководство для начинающих - Шилдт Герберт (2012)
-
Год:2012
-
Название:Java руководство для начинающих
-
Автор:
-
Жанр:
-
Оригинал:Английский
-
Язык:Русский
-
Издательство:Вильямс
-
Страниц:316
-
ISBN:978-5-8459-1770-6
-
Рейтинг:
-
Ваша оценка:
Java руководство для начинающих - Шилдт Герберт читать онлайн бесплатно полную версию книги
Переменная цикла может как увеличиваться, так и уменьшаться, а величина приращения может выбираться произвольно. Например, в приведенном ниже фрагменте кода выводятся числа в пределах от 100 до -95, и на каждом шаге переменная цикла уменьшается на 5.
// Цикл for, выполняющийся с отрицательным приращением переменной,
class DecrFor {
public static void main(String args[]) {
int x;
//На каждом шаге цикла управляющая им переменная уменьшается на 5.
for(х = 100; х > -100; х -= 5)
System.out.println(х);
}
}
В отношении циклов for следует особо подчеркнуть, что условное выражение всегда проверяется в самом начале цикла. Это означает, что код в цикле может вообще не выполняться, если проверяемое условие с самого начала оказывается ложным. Рассмотрим следующий пример:
for(count=10; count < 5; count++)
x += count; // этот оператор не будет выполнен
Этот цикл вообще не будет выполняться, поскольку первоначальное значение переменной count, которая им управляет, сразу же оказывается больше 5. А это означает,что условное выражение count < 5 оказывается ложным с самого начала, т.е. еще до выполнения первого шага цикла.
Некоторые разновидности цикла for
Цикл for относится к наиболее универсальным операторам языка Java, поскольку он допускает самые разные варианты применения. Например, для управления циклом можно использовать несколько переменных. Рассмотрим следующий пример программы:
// Применение запятых в операторе цикла for.
class Comma {
public static void main(String args[]) {
int i, j;
// Для управления этим циклом используются две переменные.
for (i=0, j =10; i < j; i++, j —)
System.out.println("i and j: " + i + " " + j);
}
}
Выполнение этой программы дает следующий результат:
i and j 0 10
i and j 1 9
i and j 2 8
i and j 3 7
i and j 4 6
В данном примере запятыми разделяются два оператора инициализации и еще два итерационных выражения. Когда цикл начинается, инициализируются обе переменные, i и j. Всякий раз, когда, цикл повторяется, переменная i инкрементируется, а переменная j декрементируется. Применение нескольких переменных управления циклом нередко оказывается удобным и упрощает некоторые алгоритмы. Теоретически в цикле for может быть указано любое количество операторов инициализации и итерации, но на практике такой цикл получается слишком громоздким, если применяется больше двух подобных операторов.
Условным выражением, управляющим циклом for, может быть любое действительное выражение, дающее результат типа bool. В него не обязательно должна входить переменная управления циклом. В следующем примере программы цикл будет выполняться до тех пор, пока пользователь не введет с клавиатуры букву S.
// Выполнение цикла до тех пор, пока с клавиатуры
//не будет введена буква S.
class ForTest {
public static void main(String args[])
throws java.io.IOException {
int i;
System.out.println("Press S to stop.");
for(i = 0; (char) System.in.read() != 'S'; i++)
System.out.println("Pass #" + i);
}
}
Пропуск отдельных частей в определении цикла for
Ряд интересных разновидностей цикла for получается в том случае, если оставить пустыми отдельные части в определении цикла. В Java допускается оставлять пустыми любые или же все части инициализации, условия и итерации в операторе цикла for. В качестве примера рассмотрим следующую программу:
// Пропуск отдельных частей в определении цикла for.
class Empty {
public static void main(String args[]) {
int i;
// В определении этого цикла отсутствует итерационное выражение.
for(i =0; i < 10; ) {
System.out.println("Pass #" + i) ;
i++; // инкрементировать переменную управления циклом
}