powered by simpleCommunicator - 2.0.54     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Неприятная особенность работы с условными операторами
10 сообщений из 10, страница 1 из 1
Неприятная особенность работы с условными операторами
    #37414114
Серьга
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Недавно довелось столкнуться со следующей ситуацией: если при выполнении условия в операторе If осуществляется присвоение переменной какого-либо значения, то при использовании этой переменной после этого оператора она имела это значение независимо от того, выполняется условие или нет. В этой связи возникают следующие вопросы:
1) Можно ли решить эту проблему, не включая в тело оператора всех ситуаций, когда используется переменная?
2) Возможно ли возникновение такой ситуации, когда на месте переменной находится свойство объекта?
3) Есть ли такая же проблема с оператором Select...Case, и, если есть, то только с переменными или и с переменными, и со свойствами объектов, и какими способами её можно разрешить?
Заранее спасибо!
...
Рейтинг: 0 / 0
Неприятная особенность работы с условными операторами
    #37414122
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Серьгав операторе If осуществляется присвоение переменной какого-либо значенияИ как же это в VB возможно, приведите пример (это только через функцию возможно, однако слово "функция" не прозвучало)
...
Рейтинг: 0 / 0
Неприятная особенность работы с условными операторами
    #37414154
Фотография BelowZero
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Серьга,

я так понял, у вас условие:
ЕСЛИ блаблаблабла ТО
ПЕРЕМЕННАЯ = блабла
КОНЕЦ
и условие считается выполненным всегда и переменной всегда присваивается значение независимо от выполнения условия? если так, то проверьте синтаксис написания условия между if и then. иногда к таким ошибкам приводят опечатки и неправильное использование оператора or и and. а вообще никаких проблем с присвоением переменной значения в операторе if нет
...
Рейтинг: 0 / 0
Неприятная особенность работы с условными операторами
    #37414162
Серьга
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В данной программе после условного оператора b=5 и при невыполнении условия.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
Dim i As Long, t As Integer, s As Single, b As Integer, k As Integer
Private Sub Form_Click()
Form1.Cls
Form1.Refresh
For i =  1  To  99999 
s = i *  10  ^ (k -  38 )
t =  0 
While i Mod  10  ^ (t +  1 ) =  0 
t = t +  1 
Wend
If  38  - t - k >  7  Then b =  5 
If Len(CStr(s)) > Len(CStr(i)) + b - t And s - i *  10  ^ (k -  38 ) <>  0  And k >  25  Then
Form1.Print s, i
L= L +  1 
End If
Next i
Form1.Caption = Str$(k) + "   " + Str$(L)
k = k +  1 
End Sub
Private Sub Form_Load()
k =  25 
L =  0 
End Sub
Модератор: учимся использвать тэги для кода
...
Рейтинг: 0 / 0
Неприятная особенность работы с условными операторами
    #37414171
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Честно говоря, перечитал десять раз и не понял, в чем проблема.
...
Рейтинг: 0 / 0
Неприятная особенность работы с условными операторами
    #37414173
Фотография BelowZero
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Серьга,

возможно, вам укажут на конкретную строку с ошибкой в коде, могу лишь сказать, что либо синтаксис условия написан неверно, либо само условие в вашем случае всегда выполняется
...
Рейтинг: 0 / 0
Неприятная особенность работы с условными операторами
    #37414187
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А, я кажется понял, в чем у автора проблема. Однажды приняв значение 5, переменная b будет равна пяти уже всегда, потому что автор никакого другого значения не пытается ей присвоить.
...
Рейтинг: 0 / 0
Неприятная особенность работы с условными операторами
    #37414191
скукотища
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Серьга,
Область видимости - вот корень зла где собака зарыта.
...
Рейтинг: 0 / 0
Неприятная особенность работы с условными операторами
    #37414192
Ципихович Эндрю
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.ProА, я кажется понял, в чем у автора проблема. Однажды приняв значение 5, переменная b будет равна пяти уже всегда, потому что автор никакого другого значения не пытается ей присвоить.
странная проблема
что гадать, автор пусть поснит ещё раз

если при выполнении условия в операторе If осуществляется присвоение переменной какого-либо значения, то при использовании этой переменной после этого оператора она имелает? это значение независимо от того, выполняется условие или нет

конечно только после выполнения условия
...
Рейтинг: 0 / 0
Неприятная особенность работы с условными операторами
    #37414196
скукотища
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ОФФ:
Серьга,
да откажитесь вы от этих излишеств нехороших
Код: plaintext
1.
2.
3.
4.
5.
6.
for i=...
'...
t =  0 
While i Mod  10  ^ (t +  1 ) =  0 
t = t +  1 
Wend
'...

вот же, без оных:
Код: plaintext
1.
2.
3.
4.
5.
' t инициализируете ПЕРЕД циклом FOR
t= 0 
for i ...
..
'а в цикле инкрементируете по условию. БЕЗ while... wend
if i mod  10 ^(t+ 1 )= 0  Then t = t+  1 
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Неприятная особенность работы с условными операторами
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]