Отправляет email-рассылки с помощью сервиса Sendsay

Программирование в среде Java

  Все выпуски  

Программирование в среде Java


Служба Рассылок Subscribe.Ru проекта Citycat.Ru
                  Управляющие структуры (продолжение).

  Для работы с числовыми величинами в Java выделены следующие
 арифметические операторы (их операнды - величины типа byte, short,
 int, long, float, double, char):
   запись   семантика   количество операндов    пример
     +       сложение           2                 a+b
     -   изменение знака        1                  -a
     -      вычитание           2                 a-b
     *      умножение           2                 a*b
     /      деление             2                 a/b
     %  деление по модулю       2                 a%b

  Замечания:
  Результатом операции над двумя величинами одного типа является
 величина этого же типа. Если же тип операндов различен, то будет
 совершено автоматическое расширяющее приведение типов (об этом
 поговорим в следующий раз).
  Для целочисленных типов оператор / действует следующим образом:
 для положительных a и b-это целая часть от деления a на b,
 (-a)/b=-(a/b) a/(-b)=-(a/b) (-a)/(-b)=a/b. Деление по модулю
 определяется следующим образом a%b=a-(a/b)*b.Так, например,
 5/2=2, (-5)/2=-2, 5/(-2)=-2, (-5)/(-2)=2, (-5)%(-2)=-1.
  Для вещественных типов оператор / действует обычным образом,
 оператор % же для вещественных типов определяется хитрее:
 a%b=a-[a/b]*b, где [x]-целая часть числа x, т.е. наибольшее целое
 не превосходящее данное.
  Велчины типа char в арифметических операциях автоматически приводятся
 к типу int.

  Из C в Java заимствованы "укороченные" операторы присваивания/действия
 вида x{op}=y, где {op}-любой из приведенных выше арифметических
 операторов. Семантика этих операторов: x=x{op}y, значение- x{op}y.
 К примеру, результатом последовательности операторов
   x=1;
   y=(x+=x);
 будет значение 2 у y.

  Следующие операторы над целочисленными величинами порождают логическое
 значение (величину простого типа boolean - true или false):
     запись   семантика   количество операндов    пример
       ==     проверка              2              1==2
            на равенство
       !=     проверка              2              a!=1
           на неравенство
       >      проверка              2              a>b
          на превосходство
              первого
       <      проверка              2              a<b
          на превосходство
              второго
       >=     проверка              2              x>=1
         на непревосходство
              второго
       <=     проверка              2              x<=1
         на непревосходство
              первого

  Для определения порядка выполнения операторов, их можно группировать
 в скобки, операторы вне скобок Java группирует в соответствии со
 следующей таблицей приоритетов:
  0. ( )
  1.  *  /    %
  2.  +  -
  3.  >  >=   < <=
  4.  == !=
  5.  =  {op}=
  Сначала выполняются более высокоприоритетные операторы, внутри одного
 приоритета операторы выполняются слева направо. Например, выражение
 a+b*c/d-m эквивалентно следующему (a+((b*c)/d))-m, которое представляет
 его вычислительную схему.

  Для контроля потока управления используются операторы if и while.
  Условный оператор if имеет следующий синтаксис: if (b) {блок}; или
 упрощенный вариант: if (b) оператор;, где b-величина логического типа,
 блок-последлвательность разделенных операторов(лексем). Возможен
 синтаксис: if (b) {блок1} else {блок2};, в этом случае блок1
 выполняется если b истинно, а блок2-если ложно.Любой из блоков
 можно заменить оператором. else всегда относится к последнему
 if в текущем блоке, т.о. в последовательности операторов
      if (a)
         if (b) {блок1};
      else {блок2};
 else относится к if (b). Если нужно чтобы else относился к другому
 else нужно соответствующим образом расставить блоки:
      if (a) {
         if (b) {блок1};
      }
      else {блок2};
 здесь else относится к if (a).

  Для организации циклов в Java предназначен оператор while:
 while (b) {блок};. Он проверяет на истинность выражение b, и, если b
 истинно, выполняет блок.После выполнения блока если b истинно, то блок
 выполняется еще раз, и так до тех пор пока b не станет ложно. Чтобы
 изнутри блока покинуть while, используется оператор break; чтобы
 перейти на начало новой итерации (проверка b на истинность и выполнение
 блока в случае истинности) - оператор continue.

  Узнав все это, давайте напишем простенькую программу:
  IsCommon.java

  public class IsCommon {
         public static void main (String args[]) {
                int num = 65537;
                int i;

                i=2;
                while (i <= num/2) {
                       if (num % i == 0) break;
                       i++;
                }
                if (num % i == 0) System.out.println ("The number isn't common");
                if (num % i != 0) System.out.println ("The number is common");
         }
  }

  Как нетрудно догадаться, эта программа проверяет является ли число
 65537 простым. Если вы вдруг этого не знаете, тем интереснее будет
 наблюдать за результатом ее работы :)


http://subscribe.ru/
E-mail: ask@subscribe.ru

В избранное