Порядок виконання

“Порядком виконання називається черговість, в якій виконуються оператори програми Один із прикладів впливу на порядок виконання – цикл while в програмі для виведення чисел Фібоначчі До числа інших операторів, що змінюють порядок виконання, відносяться конструкції if / else, for, switch, do / while і блоки – Кілька операторів, згрупованих всередині фігурних дужок {і} Давайте вдосконалимо програму для виведення чисел Фібоначчі – перенумеруем всі члени послідовності і пометим непарні числа зірочкою:

/ ** Вивести кілька перших чисел Фібоначчі,

позначаючи непарні числа символом * * /

static final int MAX_INDEX = 10

public static void main (String[] args) {

int lo = 1 int hi = 1 String mark

Systemoutprintln(“1: ” + lo)

for (int i = 2 i &lt MAX_INDEX i++) {

if (hi % 2) == 0)

mark = “ *”

else

mark = “”

Systemoutprintln(i + “: ” + hi + mark)

hi = lo + hi / / Зміна значення hi

lo = hi – lo / * Нове значення lo одно старому hi, тобто сумі

за вирахуванням старого lo * /

}

}

}

Ось як виглядає результат роботи програми:

1: 1

2: 1

3: 2 *

4: 3

5: 5

6: 8 *

7: 13

8: 21

9: 34 *

Для спрощення нумерації ряду замість while використовується цикл for Цикл for є окремим випадком while з додаванням ініціалізації та прирощення змінної циклу Наведений вище цикл for еквівалентний наступного циклу while:

{

int i = 2

while (i &lt MAX_INDEX) {

/ / . Висновок

i++

}

}

Оператор + + в цьому фрагменті може здатися незрозумілим тому, хто не знайомий з мовами програмування, висхідними до C Цей оператор збільшує на одиницю значення змінної, до якої він застосовується, – В даному випадку, i Оператор + + є префіксним, Якщо він стоїть перед операндом, і Постфіксний, Якщо він стоїть після нього Аналогічно, оператор – зменшує на одиницю значення змінної, до якої він застосовується, і також може бути префіксним або Постфіксний Оператори

+ + І – ведуть своє походження з мови програмування C У наведеному вище прикладі оператор

i++

може бути замінений виразом

i = i + 1

Крім простого присвоювання, в Java є й інші оператори присвоювання, які застосовують арифметичні дії до значення в їх лівій частині Наприклад, ще одна можливість представити i + + в циклі for може бути такою:

i += 1

Значення в правій частині оператора + = (тобто 1) додається до значення змінної в лівій частині (тобто i), і результат записується в ту ж змінну Більшість бінарних операторів в Java (іншими словами, операторів з двома операндами) може аналогічним чином обєднуватися з оператором =

Всередині циклу for використовується конструкція if / else, що перевіряє поточне значення hi на парність Оператор if аналізує значення виразу в дужках Якщо воно дорівнює true, то виконується перший оператор або блок всередині оператора if Якщо ж значення дорівнює

false, то виконується оператор або блок, наступний за ключовим словом else Наявність

else не потрібно якщо else відсутній і умова одно false, то блок if пропускається Після виконання однієї з двох можливих гілок конструкції if / else, управління передається оператору, наступному за оператором if

У нашому прикладі перевірка hi на парність здійснюється за допомогою оператора% Він обчислює залишок від ділення лівого операнда на правий Якщо значення зліва парне, то залишок буде дорівнює 0, і наступний оператор присвоїть змінній marker зірочку – індикатор для позначки парного числа Для непарних чисел виконується умова else, присваивающее marker порожню рядок

Метод println виконується дещо складніше – оператор + використовується для конкатенації наступних рядків: i, роздільник, рядок для значення hi і рядок-індикатор У разі застосування оператора + до рядків він виконує їх конкатенацію, тоді як в арифметичних виразах він займається складанням

Вправа 17

Модифікуйте цикл так, щоб значення змінної i змінювалося не в прямому, а у зворотному напрямку

Джерело: Арнольд К, Гослінг Д – Мова програмування Java (1997)

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*