2015-12-28 2 views
0

Хорошо, поэтому я работал над созданием программы, и по какой-то причине, когда я помещал свой код в инструкцию else if, он вообще не будет запускать statemant даже не оригинал Если утверждение, однако, когда я помещаю его в обычный оператор If и else, он отлично работает.Инструкция ElseIf не запускает весь код VB

Этот бит кода работает:

If TextBox5.Text > TextBox1.Text & TextBox6.Text > TextBox2.Text Then 'NE 
     Bearing = Atan(X2/Y2) * 57.3 
    Else 
     Bearing = Atan(Y2/X2) * 57.3 
     Bearing = Bearing + -Bearing + -Bearing + 90 
     If BOFF > 0 Then 
      Bearing = Bearing - Math.Round(BOFF) 
     Else 
      Bearing = Bearing + Math.Round(BOFF) 


     End If 


    End If 

И этот бит кода не работает:

If TextBox5.Text > TextBox1.Text & TextBox6.Text > TextBox2.Text Then 'NE 
     Bearing = Atan(X2/Y2) * 57.3 
    ElseIf TextBox5.Text > TextBox1.Text & TextBox6.Text < TextBox2.Text Then 
     Bearing = Atan(Y2/X2) * 57.3 
     Bearing = Bearing + -Bearing + -Bearing + 90 
     If BOFF > 0 Then 
      Bearing = Bearing - Math.Round(BOFF) 
     Else 
      Bearing = Bearing + Math.Round(BOFF) 


     End If 


    End If 

Может быть что-то ошибка синтаксиса, но он не приходит с ошибкой вообще, отлично работает код и все такое. Я не знаю, что я тут делаю неправильно.

+0

В рабочем коде условие if не выполняется, поэтому оно будет вводить инструкции else. В нерабочем коде не выполняется условие if или else if, поэтому код не выполняется. Я уверен, что некоторые дополнительные усилия по отладке на вашей стороне будут сортировать эту проблему. Я обычно добавляю скобки/круглые скобки к условиям для разделения условий. – Karlta05

+0

что вы пытаетесь достичь на самом деле ?. Просто объясните свое требование .... –

+0

@wingedpanther Итак, в основном, есть разные направления, которые он вычисляет, это всего лишь 2 из них, 2 из них нужно добавить, так что мне нужно всего 3 заявления elseif, но не только 1, но это была демонстрация, так как код не работает. Таким образом, чтобы обобщить, theyre различных направлениях программа сканирует, а затем устанавливает вычисления prefrences и вычисляет их, но кажется, что иначе, если разрывает код и ничего не работает. – MattJ

ответ

1

Вы должны использовать AND вместо &

AND является логическим оператором, с другой стороны & для присоединения строк

Это логично, а также побитовое И оператор. Если оба операнда верны, тогда условие становится истинным. Этот оператор не выполняет короткое замыкание, то есть оценивает оба выражения.

If TextBox5.Text > TextBox1.Text And TextBox6.Text > TextBox2.Text Then 'NE 
     'Code 
ElseIf TextBox5.Text > TextBox1.Text And TextBox6.Text < TextBox2.Text Then 
     'Code 
End If 

Примечание:

Если значения TextBox1.Text =4, TextBox6.Text=1 затем TextBox1.Text & TextBox6.Text будет урожайность 41

Смотрите эту demo

& используется для конкатенации двух строк

+1

В вашем коде вы также можете использовать 'AndAlso' для включения короткого замыкания –

Смежные вопросы