Visual Basic, .NET, ASP, VBScript
 

   
   
     

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

Страница: 1 | 2 |

 

  Вопрос: Бред какой-то! (For... Next) Добавлено: 22.03.08 18:32  

Автор вопроса:  Winand | Web-сайт: winandfx.narod.ru
Есть более нормальный способ в Vb6 перейти к следущей итерации? Я придумал вот что:

For i = 0 to 11111
Do
    rS = 73
    If i = 5 Then Exit Do
    g = 7
    f = 9
Exit Do
Loop
Next i

Там получается довольно запутанная структура и в определенный момент мне нужно тупо взять и перейти к к следущему i.

Ответить

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

Номер ответа: 1
Автор ответа:
 



Администратор

ICQ: 278109632 

Вопросов: 42
Ответов: 3949
 Web-сайт: domkratt.com
 Профиль | | #1
Добавлено: 22.03.08 18:45
    For i = 0 To 11111
        rS = 73
        If i = 5 Then GoTo L1
        g = 7
        f = 9
L1:
    Next i

Ответить

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



Вопросов: 87
Ответов: 2795
 Web-сайт: winandfx.narod.ru
 Профиль | | #2
Добавлено: 22.03.08 20:36
эмм.. В данном случае GoTo всё-таки лучше?=)
Я просто им вообще не пользуюсь, только в 'On Error...'

Ответить

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



Администратор

ICQ: 278109632 

Вопросов: 42
Ответов: 3949
 Web-сайт: domkratt.com
 Профиль | | #3
Добавлено: 23.03.08 00:18
а ты в дизассемблере глянь результаты с Do...Loop и с GoTo и сравни

Ответить

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



Вопросов: 87
Ответов: 2795
 Web-сайт: winandfx.narod.ru
 Профиль | | #4
Добавлено: 23.03.08 11:07
Точно знаю, что For быстрее чем Do. Ладно... Наверное всё-таки GoTo - это не такое извращенство=))

Ответить

Номер ответа: 5
Автор ответа:
 Artyom



Разработчик

Вопросов: 130
Ответов: 6602
 Профиль | | #5 Добавлено: 24.03.08 01:13
Хе, с какой это стати For быстрее чем Do?
Если это как минимум две разные синтаксические констракции, как ты их вообще сравниваешь?

Ответить

Номер ответа: 6
Автор ответа:
 night-roll



Вопросов: 36
Ответов: 326
 Профиль | | #6 Добавлено: 24.03.08 02:12
топик № 1 прав на 100%
    For i = 0 To 11111
        rS = 73
        If i = 5 Then GoTo L1
        g = 7
        f = 9
L1:
    Next i

анологично разветвлению по условию, где опущено Else
например:
    For i = 0 To 11111
        rS = 73
        If i <> 5 Then  
            g = 7
            f = 9
        end if

    Next i

И
    For i = 0 To 11111
        rS = 73
        If i = 5 Then
           GoTo L1
        else
            g = 7
            f = 9
        end if
L1:
    Next i

аналогичные конструкции

Ответить

Номер ответа: 7
Автор ответа:
 Artyom



Разработчик

Вопросов: 130
Ответов: 6602
 Профиль | | #7 Добавлено: 24.03.08 02:59
На какие только ухищрения не идут люди чтоб удержаться на тонущем корабле...

For i = 0 To 11111
    rS = 73
    If i = 5 Then Continue For
    g = 7
    f = 9
Next

Ответить

Номер ответа: 8
Автор ответа:
 Artyom



Разработчик

Вопросов: 130
Ответов: 6602
 Профиль | | #8 Добавлено: 24.03.08 02:59
На какие только ухищрения не идут люди чтоб удержаться на тонущем корабле...

For i = 0 To 11111
    rS = 73
    If i = 5 Then Continue For
    g = 7
    f = 9
Next

Ответить

Номер ответа: 9
Автор ответа:
 



Администратор

ICQ: 278109632 

Вопросов: 42
Ответов: 3949
 Web-сайт: domkratt.com
 Профиль | | #9
Добавлено: 24.03.08 11:37
Брэнд, а ты VB6 ни с каким другим языком не путаешь? =)

Ответить

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



Вопросов: 87
Ответов: 2795
 Web-сайт: winandfx.narod.ru
 Профиль | | #10
Добавлено: 24.03.08 19:54
Например с этим=)) который скоро тоже родным станет...
#include <stdio.h>

int main(void) {
  int x;

  for( x = 0; x < 100; x++ ) {
      printf("Before continue.";);
      continue;
      printf("%d ", x); /* this is never executed */
  }

  return 0;
}

Ответить

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



Вопросов: 87
Ответов: 2795
 Web-сайт: winandfx.narod.ru
 Профиль | | #11
Добавлено: 24.03.08 19:57
Steel Brand, а как еще можно сравнивать For и Do, кроме как по скорости выполнения итераций? Недавно читал в какой-то статье, но плин вообще не помню в какой=)

Ответить

Номер ответа: 12
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #12
Добавлено: 25.03.08 03:16
который скоро тоже родным станет...

В этом деле промедление непозволительно :)

Ответить

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



Вопросов: 87
Ответов: 2795
 Web-сайт: winandfx.narod.ru
 Профиль | | #13
Добавлено: 25.03.08 16:42
Да? BC++ 3.1 Что интересно он умеет глючить сам по себе даже, без моей помощи=))) Или это из-за тупого эмулирования дос? Может в досбоксе запускать...

Ответить

Номер ответа: 14
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #14
Добавлено: 25.03.08 20:47
BC++ 3.1

А вот это непростительно. Ставь VC++ 2005 или gcc на худой конец.

Ответить

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



Вопросов: 87
Ответов: 2795
 Web-сайт: winandfx.narod.ru
 Профиль | | #15
Добавлено: 25.03.08 23:19
Это непростительно, но зато обязательно. Только мне немного странно бывает, когда преподше приходится читать хелп, чтобы понять как работает memmove например...
Раз уж тема ушла куда-то далеко=) то вопрос: билдер 6 или 2007 не катит? VC лучше?
gcc - "Ports of GCC are included with the Cygwin environment." посмотрим\почитаем\поизучаем

Ответить

Страница: 1 | 2 |

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



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