Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
кпп.docx
Скачиваний:
2
Добавлен:
01.07.2025
Размер:
238 Кб
Скачать
☆

Операторы ветвлений и циклов.

Оператор выбора if, в java имеет следующий вид:

 if (условие)  {

 оператор(-ры); 

}

 Фигурные скобки являются необязательными, если оператор всего один. В этом случае вся конструкция принимает вид:

 if (условие)  оператор;

 Рекомендую всегда пользоваться скобками, даже если оператор всего один, так как это значительно улучшает читаемость кода.

Распространенный во многих языках программирования, оператор «case», в java с успехом заменяется конструкцией:

 if (условие1)  {  оператор(-ры);  }

else if (условие2)  {  оператор(-ры);  }

else if (условие3)  {  оператор(-ры);  }

…

else {  оператор(-ры);  }

 Оператор множественного выбора switch моло чем отличается от аналогичного оператора в других языках:

 switch(ВыражениеДляСравнения) {

            case Совпадение1:

                команда;

                        break;

            case Совпадение2:

                команда;

                        break;

            case Совпадение3:

                команда;

                        break;

            default:

                оператор;

                break;

}

 Пример:

switch (month) {

    case 1:  monthString = "Январь";

             break;

    case 2:  monthString = "Февраль";

             break;

    case 3:  monthString = "Март";

             break;

    case 4:  monthString = "Апрель";

             break;

    case 5:  monthString = "Май";

             break;

    case 6:  monthString = "Июнь";

             break;

    case 7:  monthString = "Июль";

             break;

    case 8:  monthString = "Август";

             break;

    case 9:  monthString = "Сентябрь";

             break;

    case 10: monthString = "Октябрь";

             break;

    case 11: monthString = "Ноябрь";

             break;

    case 12: monthString = "Декабрь";

             break;

    default: monthString = "Не знаем такого";

             break;

}

Операторы цикла в java бывают нескольких видов.

Оператор цикла while.

Имеет следующий вид:

 while (условие) { оператор(-ры); }

 В этом случае вначале вычисляется условие. Если его результат «true», то следом выполняется блок операторов. Существует разновидность цикла while, в которой блок операторов выполняется в любом случае, хотя бы один раз, даже если условие изначально является ложным.

 do  { оператор(-ры); } while (условие);

 Вариант бесконечного цикла while:

 while(true) оператор;

Оператор цикла for.

Существует классическая разновидность цикла:

 for (выражение1; условие; выражение2)

 Пример:

 for (int i= 1; i<10; i++) {  оператор(-ры);  }

 Однако общий синтаксис такой:

 for (СписокВыражений1; условие; СписокВыражений2) {  оператор(-ры);  }

 Это позволяет производить в одном цикле перебор по нескольким различным переменным, с различным шагом, например, так:

 for(int x = 1, y = 3; x < 10; x++, y = y + 2 ) {

              System.out.println("y="+ y);

    }

 Вариант бесконечного цикла for:

 for ( ; ; )

 В случае бесконечных циклов необходимо внутри тела цикла предусмотреть условие выхода из него, иначе программа зависнет. В этом случае пригодятся общие для всех циклов операторы управления циклами. Их всего два:

 сontinue;  // переход на следующую итерацию

break;       // прекращение выполнения цикла

 Начиная с java SE 5.0  был добавлен очень удобный вариант цикла for, который может использоваться для перебора каких-либо итерируемых объектов, например тех же массивов, в случае, если размер этих массивов нам заранее не известен. Синтаксис у этого цикла такой:

 for (переменная :  некий_объект)  {  оператор(-ры);  }

 Например, рассмотрим заполнение массива числами от 1 до 10 и перебор его в цикле for-each:

 int[]  m = new int[10];

for (int i = 0; i<10; i++)   m[i] = i;    // заполнение массива

 for (int elem :  m)

System.out.println(elem);

 Кстати, перебор массива без начального знания его размера можно произвести и традиционным циклом for:

 for (int i = 0; m < m.length; i++) 

            System.out.println(m[i]);

 Здесь сказывается преимущество полностью объектного кода java. Массив в java – это не просто кусок выделенной памяти с данными, как во многих других языках. Это тоже некий объект, содержащий в себе некоторый набор свойств, одним из которых всегда является его длина length. Преимущество записи цикла for-each,  таким образом заключается просто в большей компактности.