Форум русскоязычного сообщества Ubuntu


Считаете, что Ubuntu недостаточно дружелюбна к новичкам?
Помогите создать новое Руководство для новичков!

Автор Тема: Как инициализировать две разнотипных переменных в цикле for?  (Прочитано 1444 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Санчо42

  • Автор темы
  • Активист
  • *
  • Сообщений: 424
    • Просмотр профиля
Нечто вроде этого
for ((int i=0; float g=9.5);i<kolvo;++i)
Компилятор всё время ругается =(
Asus K55DR  AMD A-10 (HD7660+HD7470) 6Gb/1Tb

Оффлайн gva230

  • Активист
  • *
  • Сообщений: 981
  • GUI-овый линуксоид
    • Просмотр профиля
    • Моя дикая страничка
for (int i=0, float g=9.5; i<kolvo; ++i)
« Последнее редактирование: 29 Ноября 2013, 22:46:37 от gva230 »
Kubuntu - наше фсё! :Ь

Оффлайн Санчо42

  • Автор темы
  • Активист
  • *
  • Сообщений: 424
    • Просмотр профиля
code.cc: В функции «int main()»:
code.cc:8:16: ошибка: expected unqualified-id before «float»
code.cc:8:16: ошибка: expected «;» before «float»
code.cc:8:36: ошибка: expected «)» before «;» token
code.cc:8:40: ошибка: name lookup of «i» changed for ISO «for» scoping [-fpermissive]
code.cc:8:40: замечание: (if you use «-fpermissive» G++ will accept your code)
code.cc:8:41: ошибка: expected «;» before «)» token
Восьмая строка - строка объявления цикла.
Asus K55DR  AMD A-10 (HD7660+HD7470) 6Gb/1Tb

Оффлайн gva230

  • Активист
  • *
  • Сообщений: 981
  • GUI-овый линуксоид
    • Просмотр профиля
    • Моя дикая страничка
Это потому что переменная-счётчик может быть только целым типом, то-есть int.
Kubuntu - наше фсё! :Ь

Оффлайн peregrine

  • FSM
  • СуперМодератор
  • Старожил
  • *
  • Сообщений: 7203
  • Gentoo x64 Ubuntu 16.04.1 x64
    • Просмотр профиля
Санчо42, огласите весь код...

Оффлайн Señor_Gaga

  • Забанен
  • Активист
  • *
  • Сообщений: 878
  • Ubuntu 12.04LTS & Linux Mint 13LTS "Maya"
    • Просмотр профиля
for ((int i=0; float g=9.5);i<kolvo;++i) - безсмыстлица какая-то??

Может вы имели ввиду это:

int kolvo = некоторое_значение;
float g = 9.5;

for(int i = 0; i < kolvo; i++)
   {
      // здесь код который выполняем в цикле
   }


Оффлайн Санчо42

  • Автор темы
  • Активист
  • *
  • Сообщений: 424
    • Просмотр профиля
Нужно просто чтобы переменная уничтожалась после завершения цикла.
Asus K55DR  AMD A-10 (HD7660+HD7470) 6Gb/1Tb

Оффлайн inkblack

  • Старожил
  • *
  • Сообщений: 1216
    • Просмотр профиля
Тут видимо дело в следующем. Так писать вообще нельзя:
Код: (Cpp) [Выделить]
for ((int i=0; float g=9.5);  // ...
Так — можно:
Код: (Cpp) [Выделить]
for ( int i=0,       g=9.5 ;  // ...
(Нажмите, чтобы показать/скрыть)

Нужно просто чтобы переменная уничтожалась после завершения цикла.
Пишите
Код: (Cpp) [Выделить]
{
  float g=9.5
  for ( int i=0; i<kolvo; ++i ) {
    // ...
  }
}
Я вообще C++ не знаю, может, и поизящнее можно.

УПС, точку с запятой забыл :-[
Код: (Cpp) [Выделить]
{
  float g=9.5;
  for ( int i=0; i<kolvo; ++i ) {
    // ...
  }
}
« Последнее редактирование: 30 Ноября 2013, 19:58:56 от inkblack »
Делюсь знаниями, но их у меня мало!

Оффлайн Санчо42

  • Автор темы
  • Активист
  • *
  • Сообщений: 424
    • Просмотр профиля
Спасибо, то что нужно!
Asus K55DR  AMD A-10 (HD7660+HD7470) 6Gb/1Tb

Оффлайн peregrine

  • FSM
  • СуперМодератор
  • Старожил
  • *
  • Сообщений: 7203
  • Gentoo x64 Ubuntu 16.04.1 x64
    • Просмотр профиля
Объясню, почему неправильно:
Код: (cpp) [Выделить]
for(int i=0, b = 9; i<10; i++)Можно использовать, хотя я не очень люблю такую запись.
А вот
Код: (cpp) [Выделить]
for(int i=0, double b = 9.5; i<10; i++)Нельзя, так как через запятую можно перечислять переменные одного типа, а переменные double надо объявить отдельно.

 

Страница сгенерирована за 0.057 секунд. Запросов: 22.