SlideShare uma empresa Scribd logo
1 de 21
Обсуждаемые вопросы
1.   Конструкция if-else
2.   Оператор-переключатель switch
3.   Оператор break
4.   Оператор цикла while
5.   Оператор цикла do while
6.   Оператор цикла for
7.   Оператор continue
8.   Пример использования операторов break и
     continue с выходом на метку
Конструкция if-else
  if(выражение)                            ЗАМЕЧАНИЕ: Здесь и далее в
           оператор_или_блок_1                синтаксисе квадратные
    [ else
                                              скобки заключают
           оператор_или_блок_2 ]
                                              необязательную часть, т.е.
 Таким образом, else-часть может              ту, которая может
 быть, а может и отсутствовать.               отсутствовать.

 Сначала вычисляется логическое "выражение", и если оно истинно (т.е.
 результат вычисления логического выражения будет равен true), выполняется
 "оператор_или_блок_1".
 Если выражение ложно, (т.е. его значение равно false), и существует
 else-часть, то выполняется "оператор_или_блок_2".
 Пример :
                   if( a > b ) {
                                        z = a;
                    } else {
                                        z = d; i++;
                    }
Конструкция if-else
(продолжение)
    "выражение" – в конечном итоге является логическим
    выражением, то есть оно в обязательном порядке должно
    вырабатывать булевское значение. Однако в его состав могут входить
    и арифметические выражения.

Например:    if( i == (j=6) )
             System.out.println("Greeting");
Операторы if-else могут быть множественными. Например, чтобы выделить
попадание значения некоторой переменной i в один из приведенных слева
диапазонов
                                      If (i <= 0) {
можно написать набор операторов:             . . .
                                        } else if (i <= 10) {
                                             . . .
                                        } else if (i <= 20) {
   Обратите внимание на стиль                . . .
                                        } else {
   написания и расстановку
                                           . . .
   фигурных скобок. Это типичное        }
   решение (но необязательное).
Оператор-переключатель switch
 Конструкция switch заменяет разветвленный многократный оператор if-
 else.                 switch(выражение) {
                               case конст_выр_1 :
                      оператор(ы)
                               case конст_выр_2 :
                      оператор(ы)
                               .
                               .
                               case конст_выр_n :
                      оператор(ы)
                               default : оператор(ы)
                           }
  После вычисления "выражение" в заголовке
  оператора, результат, который может иметь тип
  byte, short, int или char, преобразовывается к типу
  int, который является для него основным.
 ЗАМЕЧАНИЕ: Оператор switch может работать и с типом данных
    enum, использование которого будет рассмотрено позднее.
Оператор-переключатель switch
(продолжение)"выражение", полученное значение
  После вычисления
 последовательно сравнивается с константными
 выражениями, начиная с самого верхнего
 ("конст_выр_1"), которые, естественно, тоже должны быть
 преобразованы к типу int, пока не будет установлена их
 эквивалентность. Тогда выполняются оператор(ы) внутри
 соответствующего case.

 Однако в общем случае, если не вычисления не прервать
 явно, они будут вычисляться и для последующих клауз case
 без всяких проверок, пока не выполняться все операторы в
 switch.

 Для того, чтобы прервать вычисления, после найденного
 первого соответствия, в конце каждого набора операторов
 должен присутствовать оператор break.
Оператор-переключатель
switch (продолжение)
 Ветвь, называемая default (выполняющаяся по умолчанию), может
 отсутствовать. Если она есть, то последовательность операторов, стоящая
 непосредственно за словом default и двоеточием, выполняется, когда не
 найдено согласование ни с одним из константных выражений.

Хотя клауза default      char sign;
может стоять в           int x, y=4, z=2;
любом                    switch( sign ) {
месте, обычно ее          case '-': x = y - z;
помещают                            break;
последней.                case '+': x = y + z;
                                    break;
                          case '*': x = y * z;
В операторе switch                  break;
не может быть двух        case '/': x = y / z;
клауз case с                        break;
одинаковыми               default :
значениями.                System.out.println("Неизвестная
                        операцияn");
Пример примере нумерация днейswitch
 В следующем применения
 Начинается с понедельника и это день недели номер
 1:
      int dayNum;
       . . .
       switch (dayNum) {
          case 6:
             System.out.println("Суббота это неплохо");
          case 7:
             System.out.println("Выходные нравятся всем");
             break;
          case 1:
             System.out.println("Понедельник - тяжелый день");
          default:
             System.out.println("Трудовые будни");
             break;
        }
  в субботу будет выведено:            а в понедельник будет выведено :
  Суббота это неплохо                   Понедельник - тяжелый день
  Выходные нравятся всем                Трудовые будни
      В операторе switch помимо оператора break, также может
      быть использован оператор continue, хотя это делается очень
      редко.
Оператор break
 Оператор break обеспечивает прекращение выполнения
 самого внутреннего из объемлющих его операторов
 switch, do, for или switch.

 По умолчанию после выполнения оператора break
 управление передается оператору, следующему за
 прерванным оператором.

 Однако оператор break может содержать метку, на
 которую следует выполнить выход. Такая конструкция
 используется только для выхода из нескольких вложенных
 циклов.
Оператор цикла while
 while( условное_выражение )
 оператор_или_блокрасчета факториала
            Пример
            для числа, заданного                 int i = 0, fact =
            переменной n:                        1;
 Цикл может быть также прекращен при             while( i < n ) {
 использовании внутри тела цикла оператора            fact *= i;
 if и в комплексе с операторами break или             ++i;
 return.                                          }

  В цикле типа while проверка условия производится перед выполнением тела
  цикла. Если результат вычисления условного выражения равен true, то
  выполняется "опреатор_или_блок". Возможный сценарий выполнения цикла
  while заключается в том, что перед оператором цикла инициализируется одна
  или несколько переменных, определяющих "условное_выражение" (возможно
  счетчик числа повторений цикла). Затем "оператор_или_блок" должен
  изменять значения одной или нескольких переменных, входящих в
  "условное_выражение", с тем чтобы в конце концов результат вычисления
  выражения стал false и цикл завершился.
Оператор цикла do while
           do
                    оператор_или_блок
                 while( условное_выражение
           );
 Пример:   int i = 10, k = 20;
              do {
                    i += 10;
                   System.out.println( "i=" + i
           );
                 } while( i < k );
 Отличие цикла do while от цикла while состоит в
 том, что проверка условия производится после выполнения
 тела цикла.
 Это означает, что "оператор_или_блок" выполняется
 минимум один раз; тогда как тело цикла while может не
 выполнятся ни разу.
ЗАМЕЧАНИЕ: Обратите внимание на то, что здесь в конце оператора while
   требуется ограничитель - точка с запятой.
Оператор цикла for
 Наиболее общей и наиболее распространенной
 формой цикла является цикл FOR.
  for( [ выражение_1 ];[ выражение_2 ];[ выражение_3 ] )
         оператор_или_блок
 Каждое из трех выражений можно опускать; при этом
 разделитель
 (точка с запятой) должен обязательно присутствовать.
Формальное описание
шагов выполнения цикла for:
Обычно "выражение_1"
служит для                  1.   Вычисляется "выражение_1" ( если оно
инициализации                    присутствует ).
переменных цикла            2.   Вычисляется "выражение_2" ( если оно
(индекса); "выражение_2"         присутствует ). Если вычисленное значение
                                 равно нулю, то цикл прекращается, в
- для выполнения
                                 противном случае цикл будет продолжен.
проверки на окончание
                            3.   Исполняется тело цикла.
цикла; а "выражение_3" -
                            4.   Вычисляется "выражение_3" ( если оно
для изменения значения
                                 присутствует).
переменных цикла
                            5.   Переход к пункту 2.
(индекса).
Пример цикла for
       int n=10, sum=0;
       for( int i=0; i < n; i++ )     sum +=
       i*i;
 В данном случае не важно, какой префиксный или постфиксный
 операторы используются – результат будет одинаковым.

 Цикл for удобно использовать, когда мы работаем со счетчиками или
 индексами, то есть когда известно начальное и конечное значения
 индекса, а также шаг, который может быть отличен от 1.
             for( int i=0; i < 100; i+=10 ) {
              . . .
             }
 В описании цикла можно декларировать несколько
 переменных, операции с которыми перечисляются с применением
 запятой в качестве разделителя.
  Например, можно        for( int i=0, j=n; i < j; i++, j-- )
  использовать два       {
  счетчика:                 . . .
                          }
      ЗАМЕЧАНИЕ: В настоящее время имеется специфическая
         форма цикла for, которая будет рассмотрена позднее.
Оператор continue
                 int i, n=10;
                 double sum=0.0;
                 for(int i=0; i < n; i++){
                    if( i==6 || i==8 )
                 continue;
                    sum += i * 10.0;
                 }

 Оператор continue работает подобно оператору break, но в отличие от
 оператора break прерывает текущее выполнение тела цикла и передает
 управление на следующую итерацию. Оператор continue так же, как и
 оператор break, прерывает самый внутренний из объемлющих его циклов.
 Однако, в случае вложенных циклов иногда требуется осуществлять выход из
 внутреннего цикла за пределы наружного. Это можно было бы сделать с
 помощью выставления значения некоторого булевского флага и его проверки во
 внешнем цикле. Однако операторы break позволяют осуществлять переход и на
 метку.


 ЗАМЕЧАНИЕ: В языке Java метку можно устанавливать только на
    оператор цикла.
Пример использования
оператора break
с выходом на метку outer
class Question {

  public static void main(String[] args) {
    int i = 1;
    int j = 2;
    outer: while (i < j) {
             ++i;
             inner: do {
                      ++j;
                      if( j % 3 == 0 ) continue outer;
                      if( i % 3 == 0 ) break inner;
                      if( i % 3 == 1 ) break outer;
                      System.out.println( i * j );
                    } while (j < i);
             System.out.println( i + j );
            }
 }
}
Итоги
В теме рассмотрены:
 •   Конструкция if-else
 •   Оператор-переключатель switch
 •   Оператор break
 •   Оператор цикла while
 •   Оператор цикла do while
 •   Оператор цикла for
 •   Оператор continue
 •   Пример использования операторов break и
     continue с выходом на метку
Задания
 Выберите несколько заданий (3-4 штуки) в
  зависимости от вашего уровня и выполните их
 Не обязательно делать все!
Задания 1-го уровня сложности
1. Вычислить площадь и периметр
   прямоугольника, если задана длина одной стороны
   (a) и коэффициент n (%), позволяющий вычислить
   длину второй стороны (b=n*a).
2. Вычислить периметр и площадь прямоугольного
   треугольника по заданным длинам двух катетов a и b.
3. В зависимости от дня недели, выдать сообщение о его
   номере. В зависимости от номера месяца, выдать его
   название.
4. Дана сторона равностороннего треугольника. Найти
   площадь этого треугольника, его высоту, радиусы
   вписанной и описанной окружностей.
Задания 2-го уровня сложности
1. Даны три действительных числа. Возвести в квадрат
   те из них, значения которых неотрицательны, и в
   четвёртую степень – отрицательные.
2. Даны две точки А(х1, у1) и В(х2, у2). Составить
   алгоритм, определяющий, которая из точек
   находится ближе к началу координат
3. На плоскости ХОУ задана своими координатами
   точка А. Указать, где она расположена (на какой оси
   или в каком координатном угле).
4. Определить принадлежит ли
   некоторая точка М с
   произвольными координатами
   х,y закрашенной области.
Задания 3-го уровня сложности
1. Лежит ли точка M(xm, ym) внутри
   треугольника, заданного координатами своих вершин
   A(xA, yA), B(xB, yB), C(xC, yC)?
2. Даны три положительных числа. Определить, можно
   ли построить треугольник с длинами сторон, равным
   этим числам. Если можно, то ответить на
   вопрос, является ли он остроугольным.
3. Можно ли на прямоугольном участке застройки
   размером a на b метров разместить два дома
   размером p на q и r на s метров? Дома можно
   располагать только параллельно сторонам участка.
Задания на циклы
 Протабулировать функцию:
                    на интервале [2,3], шаг 0,1
                  на интервале[0;1] шаг 0,1

Mais conteúdo relacionado

Mais procurados

03_JavaBasicConstructionsAndDatatypes
03_JavaBasicConstructionsAndDatatypes03_JavaBasicConstructionsAndDatatypes
03_JavaBasicConstructionsAndDatatypes
dklenov
 
javascript_part1
javascript_part1javascript_part1
javascript_part1
sovest
 
ук 03.001.02 2011
ук 03.001.02 2011ук 03.001.02 2011
ук 03.001.02 2011
etyumentcev
 
C++ осень 2012 лекция 5
C++ осень 2012 лекция 5C++ осень 2012 лекция 5
C++ осень 2012 лекция 5
Technopark
 
Msu.Center.Lectures.J01 Introducing Java
Msu.Center.Lectures.J01 Introducing JavaMsu.Center.Lectures.J01 Introducing Java
Msu.Center.Lectures.J01 Introducing Java
olegol
 

Mais procurados (20)

десант презентация
десант презентациядесант презентация
десант презентация
 
Razbiraemsya s preobrazovaniem_tipov
Razbiraemsya s preobrazovaniem_tipovRazbiraemsya s preobrazovaniem_tipov
Razbiraemsya s preobrazovaniem_tipov
 
fp intro
fp introfp intro
fp intro
 
Step 2
Step 2Step 2
Step 2
 
03_JavaBasicConstructionsAndDatatypes
03_JavaBasicConstructionsAndDatatypes03_JavaBasicConstructionsAndDatatypes
03_JavaBasicConstructionsAndDatatypes
 
Neopredelennyj integral
Neopredelennyj integralNeopredelennyj integral
Neopredelennyj integral
 
javascript_part1
javascript_part1javascript_part1
javascript_part1
 
Discovering Lambdas in Java 8
Discovering Lambdas in Java 8Discovering Lambdas in Java 8
Discovering Lambdas in Java 8
 
ук 03.001.02 2011
ук 03.001.02 2011ук 03.001.02 2011
ук 03.001.02 2011
 
моап 2011 04
моап 2011 04моап 2011 04
моап 2011 04
 
Java. Полиморфизм.
Java. Полиморфизм.Java. Полиморфизм.
Java. Полиморфизм.
 
Преобразования типов. Операторы ветвления
Преобразования типов. Операторы ветвленияПреобразования типов. Операторы ветвления
Преобразования типов. Операторы ветвления
 
C++ осень 2012 лекция 5
C++ осень 2012 лекция 5C++ осень 2012 лекция 5
C++ осень 2012 лекция 5
 
Msu.Center.Lectures.J01 Introducing Java
Msu.Center.Lectures.J01 Introducing JavaMsu.Center.Lectures.J01 Introducing Java
Msu.Center.Lectures.J01 Introducing Java
 
Java. Методы
Java. Методы Java. Методы
Java. Методы
 
Java. Generic - шаблонные типы.
Java.  Generic - шаблонные типы.Java.  Generic - шаблонные типы.
Java. Generic - шаблонные типы.
 
Применение модели GOMS
Применение модели GOMSПрименение модели GOMS
Применение модели GOMS
 
Основы программирования на ruby
Основы программирования на rubyОсновы программирования на ruby
Основы программирования на ruby
 
OOP in JavaScript - Presentation by Eugene Kalosha
OOP in JavaScript - Presentation by Eugene KaloshaOOP in JavaScript - Presentation by Eugene Kalosha
OOP in JavaScript - Presentation by Eugene Kalosha
 
Ruby строки
Ruby строкиRuby строки
Ruby строки
 

Semelhante a Базовые операторы Java

javascript
javascriptjavascript
javascript
sovest
 
ветвление.условный оператор.циклы
ветвление.условный оператор.циклыветвление.условный оператор.циклы
ветвление.условный оператор.циклы
dasha2012
 
практика 3
практика 3практика 3
практика 3
student_kai
 
обработка исключений в Java
обработка исключений в Javaобработка исключений в Java
обработка исключений в Java
metaform
 
20090222 parallel programming_lecture01-07
20090222 parallel programming_lecture01-0720090222 parallel programming_lecture01-07
20090222 parallel programming_lecture01-07
Computer Science Club
 
практика 1
практика 1практика 1
практика 1
student_kai
 

Semelhante a Базовые операторы Java (20)

02 if for
02 if for02 if for
02 if for
 
02 if for
02 if for02 if for
02 if for
 
лекция 2
лекция 2лекция 2
лекция 2
 
Циклы
ЦиклыЦиклы
Циклы
 
javascript
javascriptjavascript
javascript
 
ветвление.условный оператор.циклы
ветвление.условный оператор.циклыветвление.условный оператор.циклы
ветвление.условный оператор.циклы
 
практика 3
практика 3практика 3
практика 3
 
теория рекурсивных функций
теория рекурсивных функцийтеория рекурсивных функций
теория рекурсивных функций
 
лек3 4
лек3 4лек3 4
лек3 4
 
обработка исключений в Java
обработка исключений в Javaобработка исключений в Java
обработка исключений в Java
 
Исключения и ошибки
Исключения и ошибкиИсключения и ошибки
Исключения и ошибки
 
ПВТ - осень 2014 - Лекция 6 - Атомарные операции. Внеочередное выполнение инс...
ПВТ - осень 2014 - Лекция 6 - Атомарные операции. Внеочередное выполнение инс...ПВТ - осень 2014 - Лекция 6 - Атомарные операции. Внеочередное выполнение инс...
ПВТ - осень 2014 - Лекция 6 - Атомарные операции. Внеочередное выполнение инс...
 
операторы цикла
операторы циклаоператоры цикла
операторы цикла
 
Объектно-ориентированное программирование. Лекция 5 и 6
Объектно-ориентированное программирование. Лекция 5 и 6Объектно-ориентированное программирование. Лекция 5 и 6
Объектно-ориентированное программирование. Лекция 5 и 6
 
C++ Базовый. Занятие 03.
C++ Базовый. Занятие 03.C++ Базовый. Занятие 03.
C++ Базовый. Занятие 03.
 
20090222 parallel programming_lecture01-07
20090222 parallel programming_lecture01-0720090222 parallel programming_lecture01-07
20090222 parallel programming_lecture01-07
 
Cpp0x Introduction
Cpp0x IntroductionCpp0x Introduction
Cpp0x Introduction
 
практика 1
практика 1практика 1
практика 1
 
Statements in VHDL - Sequential Statements
Statements in VHDL - Sequential StatementsStatements in VHDL - Sequential Statements
Statements in VHDL - Sequential Statements
 
язык програмирования
язык програмированияязык програмирования
язык програмирования
 

Mais de metaform

работа с потоками ввода вывода
работа с потоками ввода выводаработа с потоками ввода вывода
работа с потоками ввода вывода
metaform
 
Классы и объекты в Java
Классы и объекты в JavaКлассы и объекты в Java
Классы и объекты в Java
metaform
 
Лекция 6_принципы ООП : инкапсуляция, наследование
Лекция 6_принципы ООП : инкапсуляция, наследованиеЛекция 6_принципы ООП : инкапсуляция, наследование
Лекция 6_принципы ООП : инкапсуляция, наследование
metaform
 
Классы и объекты в Java
Классы и объекты в JavaКлассы и объекты в Java
Классы и объекты в Java
metaform
 
Глава 2: Среда разработки NetBeans
Глава 2: Среда разработки NetBeansГлава 2: Среда разработки NetBeans
Глава 2: Среда разработки NetBeans
metaform
 

Mais de metaform (12)

Создание графического интерфейса пользователя мобильных Android приложений (ч...
Создание графического интерфейса пользователя мобильных Android приложений (ч...Создание графического интерфейса пользователя мобильных Android приложений (ч...
Создание графического интерфейса пользователя мобильных Android приложений (ч...
 
Приступаем к разработке Android приложений
Приступаем к разработке Android приложенийПриступаем к разработке Android приложений
Приступаем к разработке Android приложений
 
работа с потоками ввода вывода
работа с потоками ввода выводаработа с потоками ввода вывода
работа с потоками ввода вывода
 
Классы и объекты в Java
Классы и объекты в JavaКлассы и объекты в Java
Классы и объекты в Java
 
создание живых сайтов
создание живых сайтовсоздание живых сайтов
создание живых сайтов
 
Работа с БД в Java
Работа с БД в JavaРабота с БД в Java
Работа с БД в Java
 
Составление резюме
Составление резюмеСоставление резюме
Составление резюме
 
Коллекции в Java
Коллекции в JavaКоллекции в Java
Коллекции в Java
 
Лекция 6_принципы ООП : инкапсуляция, наследование
Лекция 6_принципы ООП : инкапсуляция, наследованиеЛекция 6_принципы ООП : инкапсуляция, наследование
Лекция 6_принципы ООП : инкапсуляция, наследование
 
Классы и объекты в Java
Классы и объекты в JavaКлассы и объекты в Java
Классы и объекты в Java
 
Глава 2: Среда разработки NetBeans
Глава 2: Среда разработки NetBeansГлава 2: Среда разработки NetBeans
Глава 2: Среда разработки NetBeans
 
Мастерство речи, искусство презентации
Мастерство речи, искусство презентацииМастерство речи, искусство презентации
Мастерство речи, искусство презентации
 

Базовые операторы Java

  • 1.
  • 2. Обсуждаемые вопросы 1. Конструкция if-else 2. Оператор-переключатель switch 3. Оператор break 4. Оператор цикла while 5. Оператор цикла do while 6. Оператор цикла for 7. Оператор continue 8. Пример использования операторов break и continue с выходом на метку
  • 3. Конструкция if-else if(выражение) ЗАМЕЧАНИЕ: Здесь и далее в оператор_или_блок_1 синтаксисе квадратные [ else скобки заключают оператор_или_блок_2 ] необязательную часть, т.е. Таким образом, else-часть может ту, которая может быть, а может и отсутствовать. отсутствовать. Сначала вычисляется логическое "выражение", и если оно истинно (т.е. результат вычисления логического выражения будет равен true), выполняется "оператор_или_блок_1". Если выражение ложно, (т.е. его значение равно false), и существует else-часть, то выполняется "оператор_или_блок_2". Пример : if( a > b ) { z = a; } else { z = d; i++; }
  • 4. Конструкция if-else (продолжение) "выражение" – в конечном итоге является логическим выражением, то есть оно в обязательном порядке должно вырабатывать булевское значение. Однако в его состав могут входить и арифметические выражения. Например: if( i == (j=6) ) System.out.println("Greeting"); Операторы if-else могут быть множественными. Например, чтобы выделить попадание значения некоторой переменной i в один из приведенных слева диапазонов If (i <= 0) { можно написать набор операторов: . . . } else if (i <= 10) { . . . } else if (i <= 20) { Обратите внимание на стиль . . . } else { написания и расстановку . . . фигурных скобок. Это типичное } решение (но необязательное).
  • 5. Оператор-переключатель switch Конструкция switch заменяет разветвленный многократный оператор if- else. switch(выражение) { case конст_выр_1 : оператор(ы) case конст_выр_2 : оператор(ы) . . case конст_выр_n : оператор(ы) default : оператор(ы) } После вычисления "выражение" в заголовке оператора, результат, который может иметь тип byte, short, int или char, преобразовывается к типу int, который является для него основным. ЗАМЕЧАНИЕ: Оператор switch может работать и с типом данных enum, использование которого будет рассмотрено позднее.
  • 6. Оператор-переключатель switch (продолжение)"выражение", полученное значение После вычисления последовательно сравнивается с константными выражениями, начиная с самого верхнего ("конст_выр_1"), которые, естественно, тоже должны быть преобразованы к типу int, пока не будет установлена их эквивалентность. Тогда выполняются оператор(ы) внутри соответствующего case. Однако в общем случае, если не вычисления не прервать явно, они будут вычисляться и для последующих клауз case без всяких проверок, пока не выполняться все операторы в switch. Для того, чтобы прервать вычисления, после найденного первого соответствия, в конце каждого набора операторов должен присутствовать оператор break.
  • 7. Оператор-переключатель switch (продолжение) Ветвь, называемая default (выполняющаяся по умолчанию), может отсутствовать. Если она есть, то последовательность операторов, стоящая непосредственно за словом default и двоеточием, выполняется, когда не найдено согласование ни с одним из константных выражений. Хотя клауза default char sign; может стоять в int x, y=4, z=2; любом switch( sign ) { месте, обычно ее case '-': x = y - z; помещают break; последней. case '+': x = y + z; break; case '*': x = y * z; В операторе switch break; не может быть двух case '/': x = y / z; клауз case с break; одинаковыми default : значениями. System.out.println("Неизвестная операцияn");
  • 8. Пример примере нумерация днейswitch В следующем применения Начинается с понедельника и это день недели номер 1: int dayNum; . . . switch (dayNum) { case 6: System.out.println("Суббота это неплохо"); case 7: System.out.println("Выходные нравятся всем"); break; case 1: System.out.println("Понедельник - тяжелый день"); default: System.out.println("Трудовые будни"); break; } в субботу будет выведено: а в понедельник будет выведено : Суббота это неплохо Понедельник - тяжелый день Выходные нравятся всем Трудовые будни В операторе switch помимо оператора break, также может быть использован оператор continue, хотя это делается очень редко.
  • 9. Оператор break Оператор break обеспечивает прекращение выполнения самого внутреннего из объемлющих его операторов switch, do, for или switch. По умолчанию после выполнения оператора break управление передается оператору, следующему за прерванным оператором. Однако оператор break может содержать метку, на которую следует выполнить выход. Такая конструкция используется только для выхода из нескольких вложенных циклов.
  • 10. Оператор цикла while while( условное_выражение ) оператор_или_блокрасчета факториала Пример для числа, заданного int i = 0, fact = переменной n: 1; Цикл может быть также прекращен при while( i < n ) { использовании внутри тела цикла оператора fact *= i; if и в комплексе с операторами break или ++i; return. } В цикле типа while проверка условия производится перед выполнением тела цикла. Если результат вычисления условного выражения равен true, то выполняется "опреатор_или_блок". Возможный сценарий выполнения цикла while заключается в том, что перед оператором цикла инициализируется одна или несколько переменных, определяющих "условное_выражение" (возможно счетчик числа повторений цикла). Затем "оператор_или_блок" должен изменять значения одной или нескольких переменных, входящих в "условное_выражение", с тем чтобы в конце концов результат вычисления выражения стал false и цикл завершился.
  • 11. Оператор цикла do while do оператор_или_блок while( условное_выражение ); Пример: int i = 10, k = 20; do { i += 10; System.out.println( "i=" + i ); } while( i < k ); Отличие цикла do while от цикла while состоит в том, что проверка условия производится после выполнения тела цикла. Это означает, что "оператор_или_блок" выполняется минимум один раз; тогда как тело цикла while может не выполнятся ни разу. ЗАМЕЧАНИЕ: Обратите внимание на то, что здесь в конце оператора while требуется ограничитель - точка с запятой.
  • 12. Оператор цикла for Наиболее общей и наиболее распространенной формой цикла является цикл FOR. for( [ выражение_1 ];[ выражение_2 ];[ выражение_3 ] ) оператор_или_блок Каждое из трех выражений можно опускать; при этом разделитель (точка с запятой) должен обязательно присутствовать. Формальное описание шагов выполнения цикла for: Обычно "выражение_1" служит для 1. Вычисляется "выражение_1" ( если оно инициализации присутствует ). переменных цикла 2. Вычисляется "выражение_2" ( если оно (индекса); "выражение_2" присутствует ). Если вычисленное значение равно нулю, то цикл прекращается, в - для выполнения противном случае цикл будет продолжен. проверки на окончание 3. Исполняется тело цикла. цикла; а "выражение_3" - 4. Вычисляется "выражение_3" ( если оно для изменения значения присутствует). переменных цикла 5. Переход к пункту 2. (индекса).
  • 13. Пример цикла for int n=10, sum=0; for( int i=0; i < n; i++ ) sum += i*i; В данном случае не важно, какой префиксный или постфиксный операторы используются – результат будет одинаковым. Цикл for удобно использовать, когда мы работаем со счетчиками или индексами, то есть когда известно начальное и конечное значения индекса, а также шаг, который может быть отличен от 1. for( int i=0; i < 100; i+=10 ) { . . . } В описании цикла можно декларировать несколько переменных, операции с которыми перечисляются с применением запятой в качестве разделителя. Например, можно for( int i=0, j=n; i < j; i++, j-- ) использовать два { счетчика: . . . } ЗАМЕЧАНИЕ: В настоящее время имеется специфическая форма цикла for, которая будет рассмотрена позднее.
  • 14. Оператор continue int i, n=10; double sum=0.0; for(int i=0; i < n; i++){ if( i==6 || i==8 ) continue; sum += i * 10.0; } Оператор continue работает подобно оператору break, но в отличие от оператора break прерывает текущее выполнение тела цикла и передает управление на следующую итерацию. Оператор continue так же, как и оператор break, прерывает самый внутренний из объемлющих его циклов. Однако, в случае вложенных циклов иногда требуется осуществлять выход из внутреннего цикла за пределы наружного. Это можно было бы сделать с помощью выставления значения некоторого булевского флага и его проверки во внешнем цикле. Однако операторы break позволяют осуществлять переход и на метку. ЗАМЕЧАНИЕ: В языке Java метку можно устанавливать только на оператор цикла.
  • 15. Пример использования оператора break с выходом на метку outer class Question { public static void main(String[] args) { int i = 1; int j = 2; outer: while (i < j) { ++i; inner: do { ++j; if( j % 3 == 0 ) continue outer; if( i % 3 == 0 ) break inner; if( i % 3 == 1 ) break outer; System.out.println( i * j ); } while (j < i); System.out.println( i + j ); } } }
  • 16. Итоги В теме рассмотрены: • Конструкция if-else • Оператор-переключатель switch • Оператор break • Оператор цикла while • Оператор цикла do while • Оператор цикла for • Оператор continue • Пример использования операторов break и continue с выходом на метку
  • 17. Задания  Выберите несколько заданий (3-4 штуки) в зависимости от вашего уровня и выполните их  Не обязательно делать все!
  • 18. Задания 1-го уровня сложности 1. Вычислить площадь и периметр прямоугольника, если задана длина одной стороны (a) и коэффициент n (%), позволяющий вычислить длину второй стороны (b=n*a). 2. Вычислить периметр и площадь прямоугольного треугольника по заданным длинам двух катетов a и b. 3. В зависимости от дня недели, выдать сообщение о его номере. В зависимости от номера месяца, выдать его название. 4. Дана сторона равностороннего треугольника. Найти площадь этого треугольника, его высоту, радиусы вписанной и описанной окружностей.
  • 19. Задания 2-го уровня сложности 1. Даны три действительных числа. Возвести в квадрат те из них, значения которых неотрицательны, и в четвёртую степень – отрицательные. 2. Даны две точки А(х1, у1) и В(х2, у2). Составить алгоритм, определяющий, которая из точек находится ближе к началу координат 3. На плоскости ХОУ задана своими координатами точка А. Указать, где она расположена (на какой оси или в каком координатном угле). 4. Определить принадлежит ли некоторая точка М с произвольными координатами х,y закрашенной области.
  • 20. Задания 3-го уровня сложности 1. Лежит ли точка M(xm, ym) внутри треугольника, заданного координатами своих вершин A(xA, yA), B(xB, yB), C(xC, yC)? 2. Даны три положительных числа. Определить, можно ли построить треугольник с длинами сторон, равным этим числам. Если можно, то ответить на вопрос, является ли он остроугольным. 3. Можно ли на прямоугольном участке застройки размером a на b метров разместить два дома размером p на q и r на s метров? Дома можно располагать только параллельно сторонам участка.
  • 21. Задания на циклы  Протабулировать функцию:  на интервале [2,3], шаг 0,1  на интервале[0;1] шаг 0,1