Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: О цикле Добавлено: 07.10.07 22:09  

Автор вопроса:  tihu
Здравствуйте!
У меня вот такой вопрос. Есть цикл For... Next, в котором в качестве необязательного параметра можно указать шаг Step. Можно ли сделать так, чтобы этот самый шаг был переменной величиной, к примеру сначала 1, потом 2, потом снова 1, 3 и т.д. Если да, то приведи пример, пожалуйста.
Спасибо.

Ответить

  Ответы Всего ответов: 7  

Номер ответа: 1
Автор ответа:
 Mr.Smile



ICQ: 427682013 

Вопросов: 14
Ответов: 464
 Профиль | | #1 Добавлено: 07.10.07 22:26
Можно ли сделать так, чтобы этот самый шаг был переменной величиной, к примеру сначала 1, потом 2, потом снова 1, 3 и т.д.
Из самого цикла нельзя, т.к. он (шаг) задаётся вначале цикла.

Ответить

Номер ответа: 2
Автор ответа:
 Mr.Smile



ICQ: 427682013 

Вопросов: 14
Ответов: 464
 Профиль | | #2 Добавлено: 07.10.07 22:27
Зато можно написать процедуру, которая бы всё это расчитывала :)

Ответить

Номер ответа: 3
Автор ответа:
 tihu



Вопросов: 11
Ответов: 13
 Профиль | | #3 Добавлено: 07.10.07 23:03
У меня вот так, но не работает.
        j = 0
        s1 = 1
        For i = 0 To ktext / 2 - 1 Step s1
            s1 = 1
            m3 = m(i)
            ;Do While m3 < 5
                m3 = m3 + m(i + 1)
                s1 = s1 + 1
            Loop
            ReDim Preserve m2(j + 1)
            m2(j) = m3
            Console.Write(m2(j) & Chr(13))
            j = j + 1
        Next
Подскажите, что за процедура

Ответить

Номер ответа: 4
Автор ответа:
 Winand



Вопросов: 87
Ответов: 2795
 Web-сайт: winandfx.narod.ru
 Профиль | | #4
Добавлено: 07.10.07 23:59
так ты сам меняй значение i внутри цикла

Ответить

Номер ответа: 5
Автор ответа:
 Mr.Smile



ICQ: 427682013 

Вопросов: 14
Ответов: 464
 Профиль | | #5 Добавлено: 08.10.07 00:31
Подскажите, что за процедура
Это не процедура а кусок кода, взятого непонятно откуда, т.к. отсутствуют объявления переменных с указанием их типов и "объекта" (то ли модуль, то ли класс :)) Console. А значение s1 менять не имеет смысла - это никак не повлияет на выполнение цикла (т.е. в качестве "шага" будет использоваться значение s1, которое указано до начала выполнения цикла, при этом должно быть s1 <> 0). Поэтому придётся тебе самому высчитывать значение i.

Ответить

Номер ответа: 6
Автор ответа:
 tihu



Вопросов: 11
Ответов: 13
 Профиль | | #6 Добавлено: 08.10.07 07:59
Я это знаю, тк сам все ручками писал. А Console (вместо Debug.Print) - это средство встроенное в среду,я туда вывожу промежуточные данныt в окно Output интегрированное в среду разработки Visual Basic. Просто забыл убрать отсюда.
За совет спасибо, все работает, вот так теперь:
        For i = 0 To ktext / 2 - 1
            m3 = m(i)
            ;Do While m3 < 5
                m3 = m3 + m(i + 1)
                i += 1
            Loop
            ReDim Preserve m2(j + 1)
            m2(j) = m3
            Console.Write(m2(j) & Chr(13))
            j += 1
        Next

Ответить

Номер ответа: 7
Автор ответа:
 Агент



Вопросов: 3
Ответов: 16
 Профиль | | #7 Добавлено: 13.10.07 00:32
dim i as тип данных
i=нач.значение счетчика

do while 1=1
i=i+необходимый шаг
if i=конечному значению then exit do
loop

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам