74 / 54 / 17
Регистрация: 10.07.2014
Сообщений: 329
1

Каково значение переменной после работы цикла

28.08.2014, 11:38. Показов 1937. Ответов 8
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Где то когда то читал, что значение переменной цикла после его окончания неопределено.
Но использование такое вроде бы видел.
Как сейчас в этим?
Среда разработки RAD Studio
C
1
2
3
4
5
6
7
8
int fu()
{
  int i;
  for (i=0;i<12345;i++) {
    if (i==345) break;
  }
  return i;
}
Код для примера, писать что return внутри цикла можно написать - не надо
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.08.2014, 11:38
Ответы с готовыми решениями:

Значение переменной после окончания цикла
Чему будет равно i после окончания цикла: for (i=30;i&gt;=10;i--); тело цикла; знаю, вопрос глупый

Определить значение переменной после выполнения цикла while
Определить значение переменной s после выполнения следующих операторов: s=0; i=0; while(i&lt;s)...

Как очистить значение переменной после цикла?
Задача такая. Создаем приложение TCP/IP. Клиент посылает слово серверу, сервер возвращает его назад...

Найти значение переменной после выполнения цикла
Здравствуйте. Помогите разобраться как решать подобного рода задания. Нужно определить, чему...

8
6045 / 2160 / 753
Регистрация: 10.12.2010
Сообщений: 6,005
Записей в блоге: 3
28.08.2014, 11:47 2
Значение переменной i на return-е будет не определено только в том случае, когда она будет объявлена непосредственно в цикле.
1
3257 / 2059 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
28.08.2014, 11:48 3
Цитата Сообщение от krv Посмотреть сообщение
Где то когда то читал, что значение переменной цикла после его окончания неопределено.
Имена, явки, пароли?
Странное утрверждение, вероятно еще и искаженное.

Добавлено через 1 минуту
Цитата Сообщение от HighPredator Посмотреть сообщение
Значение переменной i на return-е будет не определено только в том случае, когда она будет объявлена непосредственно в цикле.
Да там будет не неопределенное значение, а отсутствие объявления.
0
74 / 54 / 17
Регистрация: 10.07.2014
Сообщений: 329
28.08.2014, 11:53  [ТС] 4
Цитата Сообщение от 0x10 Посмотреть сообщение
Имена, явки, пароли?
Странное утрверждение, вероятно еще и искаженное.
Вот если бы мог вспомнить, где конкретно я вычитал лет эдак 20 назад... Был бы вундеркиндом
Я вообще не уверен что это утверждение было про Си, а не про Бейсик или Фортран....
HighPredator, это да.
А тут компилятор не соптимизирует случайно как нить, использовав регистр к примеру.
Или раз переменная обьявлена, она должна быть?
зы. Логично подумав, понял что если логично подумать - вопрос немного дурацкий. Надо больше спать.
0
6045 / 2160 / 753
Регистрация: 10.12.2010
Сообщений: 6,005
Записей в блоге: 3
28.08.2014, 11:55 5
Цитата Сообщение от 0x10 Посмотреть сообщение
Да там будет не неопределенное значение, а отсутствие объявления.
Верно. Завтыкал.
0
Почетный модератор
7393 / 2639 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
28.08.2014, 11:56 6
Цитата Сообщение от krv Посмотреть сообщение
А тут компилятор не соптимизирует случайно как нить, использовав регистр к примеру.
Какая разница, через что он оптимизирует. Значение не изменится.
Цитата Сообщение от krv Посмотреть сообщение
Или раз переменная обьявлена, она должна быть?
Переменная - это понятия языка С. И их нет в скомпилированном коде.
0
Модератор
Эксперт С++
13502 / 10754 / 6409
Регистрация: 18.12.2011
Сообщений: 28,700
28.08.2014, 12:11 7
Такой код
C++
1
2
3
4
5
for (int i=0;i<12345;i++) 
{
    if (i==345) break;
}
cout<<"out";
вот так можно расписать через while
C++
1
2
3
4
5
6
7
8
9
10
{
   int i=0;
   while(i<12345)
   {
       if(i==345)
           break;
       i++;
   }
}
cout<<"out";
т.е. переменная i получается локализованной внутри блока { }
1
Эксперт С++
4985 / 3092 / 456
Регистрация: 10.11.2010
Сообщений: 11,169
Записей в блоге: 10
28.08.2014, 12:30 8
В данном примере на выходе всегда будет 345.
1
654 / 575 / 164
Регистрация: 13.12.2012
Сообщений: 2,124
28.08.2014, 14:54 9
Цитата Сообщение от krv Посмотреть сообщение
Как сейчас в этим?
i в одной области видимости, следовательно i будет равно 345 есил сделать так
C++
1
2
3
4
5
6
7
8
int fu()
{
  int i;
  for ( int i=0;i<12345;i++) {
    if (i==345) break;
  }
  return i;
}
то там будет мусор
0
28.08.2014, 14:54
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.08.2014, 14:54
Помогаю со студенческими работами здесь

Определить значение переменной y после работы следующей программы
Добрый день! Передо мной поставили задачу: Определить значение переменной y после работы следующей...

Определить значение переменной после работы фрагмента программы
Здравствуйте! Возможно мой вопрос глупый, но подскажите верный ответ. Определить значение...

Определить значение переменной y после работы следующего фрагмента программы
6. Определить значение переменной y после работы следующего фрагмента программы:a = –6; b = 2 – 3 *...

Рассчитайте, чему будет равно значение переменной K после работы фрагмента программы
Рассчитайте, чему будет равно значение переменной K после работы фрагмента программы K:=100;...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru