Spec-Zone .ru
спецификации, руководства, описания, API
Домашняя страница > Изучение Языка Java > Основы языка

Ответы на Вопросы и Упражнения: Операторы

Ответы на Вопросы

  1. Рассмотрите следующий фрагмент кода:
    arrayOfInts[j] > arrayOfInts[j+1]
    
    Вопрос: Какие операторы код содержит?
    Ответ: >, +

  2. Рассмотрите следующий фрагмент кода:
    int i = 10;
    int n = i++%5;
    
    1. Вопрос: Что является значениями i и n после того, как код выполняется?
      Ответ: i 11, и n 0.

    2. Вопрос: Что является заключительными значениями i и n если вместо того, чтобы использовать постфиксный оператор инкремента (i++), Вы используете префиксную версию (++i))?
      Ответ: i 11, и n 1.

  3. Вопрос: инвертировать значение a boolean, какой оператор Вы использовали бы?
    Ответ: логический оператор дополнения"!".
  4. Вопрос: Какой оператор используется, чтобы сравнить два значения, = или == ?
    Ответ: == оператор используется для сравнения, и = используется для присвоения.
  5. Вопрос: Объясните следующий пример кода: result = someCondition ? value1 : value2;
    Ответ: Этот код должен быть считан как: "Если someCondition true, присвойте значение value1 к result. Иначе, присвойте значение value2 к result."

Упражнения

  1. Измените следующую программу, чтобы использовать составные присвоения:
    class ArithmeticDemo {
    
        public static void main (String[] args){
              
            int result = 1 + 2; // result is now 3
            System.out.println(result);
    
            result = result - 1; // result is now 2
            System.out.println(result);
    
            result = result * 2; // result is now 4
            System.out.println(result);
    
            result = result / 2; // result is now 2
            System.out.println(result);
    
            result = result + 8; // result is now 10
            result = result % 7; // result is now 3
            System.out.println(result);
    
        }
    }
    

    Вот одно решение:

    class ArithmeticDemo {
    
        public static void main (String[] args){
            int result = 3;
            System.out.println(result);
    
            result -= 1; // result is now 2
            System.out.println(result);
    
            result *= 2; // result is now 4
            System.out.println(result);
    
            result /= 2; // result is now 2
            System.out.println(result);
    
            result += 8; // result is now 10
            result %= 7; // result is now 3
            System.out.println(result);
    
        }
    }
    
  2. В следующей программе объясните, почему значение "6" печатается дважды подряд:
    class PrePostDemo {
        public static void main(String[] args){
            int i = 3;
            i++;
            System.out.println(i);    // "4"
            ++i;                     
            System.out.println(i);    // "5"
            System.out.println(++i);  // "6"
            System.out.println(i++);  // "6"
            System.out.println(i);    // "7"
        }
    }
    
    Код System.out.println(++i); оценивает к 6, потому что префиксная версия ++ оценивает к постепенно увеличенному значению. Следующая строка, System.out.println(i++); оценивает к текущей стоимости (6), затем постепенно увеличивается одним. Так "7" не становится печатным до следующей строки.
«ПредыдущийTOC

Проблемы с примерами? Попытайтесь Компилировать и Выполнить Примеры: FAQ.
Жалобы? Поздравление? Предложения? Дайте нам свою обратную связь
.

Предыдущая страница: Вопросы и Упражнения: Операторы