1 | ||||||
Каким будет результат компиляции и выполнения данного кода?20.02.2013, 20:01. Показов 1961. Ответов 10
Метки нет (Все метки)
Каким будет результат компиляции и выполнения данного кода?
Подскажите как без IDE придти к этому ответу.3-ю строчку кода поясните
0
|
20.02.2013, 20:01 | |
Ответы с готовыми решениями:
10
Каким будет результат выполнения? Каков будет результат выполнения след кода ? Каким будет результат компиляции и выполнения данного кода? Каким будет результат компиляции и выполнения данного кода? |
Музыка нас Связала
232 / 232 / 52
Регистрация: 26.03.2008
Сообщений: 616
|
|
20.02.2013, 20:19 | 2 |
Структура цикла:
for(Начальное значение, Условие Выполнения, Шаг) { Тело Цикла; } Если шаг не указан, то он будет по умолчанию 1. Значит, начинаем с 0 и инкрементируем с каждым шагом. Далее идет условие - пока i больше 0, цикл работает. На что еще обращаем внимание, на тип данных. Здесь он int -> 32 бита. Какое максимальное значение можно представить 32 битами? Конечно 11111...1 = 2^31 - 1. Если к нему добавить еще 1, то получим -2^31. Это не подходит по условию, а значит цикл останавливается.
1
|
20.02.2013, 20:23 | 3 |
3-я строчка: увеличиваем i на единицу. Сравниваем i c нулем. Если больше нуля - выполняем тело цикла.
i увеличивается начиная с 0, выводится начиная с единицы - так как тело цикла выполняется после увеличения i. Максимальное допустимое значение целого числа int = 2^31 = 0b01111111_11111111_11111111_11111111 Если к 2^31 прибавить единицу, то получится такое число: 0b10000000_00000000_00000000_00000000 = -2^31 Это число меньше нуля - на нем и заканчивается выполнение цикла. Добавлено через 1 минуту Для этого необходимо знать диапазон представляемых целых чисел int. И знать, что происходить при переполнении.
1
|
50 / 48 / 7
Регистрация: 31.10.2011
Сообщений: 98
|
|
20.02.2013, 20:24 | 4 |
Никаких "шагов по умолчанию" в for нет - переменная i инкрементируется в части, где проверяется условие. (++i)
0
|
Музыка нас Связала
232 / 232 / 52
Регистрация: 26.03.2008
Сообщений: 616
|
|
20.02.2013, 20:30 | 6 |
0
|
50 / 48 / 7
Регистрация: 31.10.2011
Сообщений: 98
|
|
20.02.2013, 22:42 | 8 |
Java не родной язык, поэтому прошу совета - какие книжки надо почитать про "шаг по умолчанию" в такой форме for? В спецификации не нашёл. Когда-то давно каноническим был Хорстман, так ли это сейчас?
0
|
Музыка нас Связала
232 / 232 / 52
Регистрация: 26.03.2008
Сообщений: 616
|
|
20.02.2013, 23:48 | 9 |
0
|
21.02.2013, 07:17 | 10 |
Какие-то странный вещи вы написали. Нет никакого шага по умолчанию. В вашем коде написано ++i - увеличение на единицу на каждой итерации.
Приведенный вами for - практически в том же виде будет абсолютно также работать в C/C++/C# и др. языках.
1
|
21.02.2013, 12:03 | 11 |
0
|
21.02.2013, 12:03 | |
21.02.2013, 12:03 | |
Помогаю со студенческими работами здесь
11
Каким будет результат выполнения фрагмента кода? Каков будет результат выполнения кода? Каков будет результат выполнения следующего кода? Каков будет результат выполнения следующего кода? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |