2013-08-11 3 views
0

У меня проблема с получением, если выражения работают. Проблема в том, что используется оператор first if, даже если выражение рядом должно возвращать значение FALSE.Если выражения не работают

Например, когда я запускаю этот скрипт, должно быть, что %X% будет иметь значение 10 к моменту его запуска дважды. (Первый - 5, второй - 10). %length% будет, кстати, иметь значение 2 во втором прогоне.

В окне сообщения, которое я получаю на втором запуске, говорится: «Длина входногоVar равна 2. - одна - 2» до 19-го пробега, которая гласит: «Длина InputVar равна 2. - One - 19 ». Затем, когда он достигает пробега 20 (через 22), он говорит: «Длина InputVar равна 3. - One-20».

Что я делаю неправильно?

^1:: 
X:=0 
Y:=0 
Loop, 22 
{ 
Y:=++Y 
X:=5+X 
InputVar:=X 
StringLen, length, InputVar 
if (%length%<2) 
{ 
MsgBox, 1, Length, The length of InputVar is %length%. - One - %Y%, 2 
} 
else if (%length%==2) 
{ 
MsgBox, 1, Length, The length of InputVar is %length%. - Two - %Y%, 2 
} 
else if (%length%>2) 
{ 
MsgBox, 1, Length, The length of InputVar is %length%. - Three - %Y%, 2 
} 
else 
{ 
MsgBox, 1, Length, The length of InputVar is %length%. - Unknown - %Y%, 2 
} 
Sleep 500 
} 
Return 

;These are the written numbers I should expect to be paired up with %Y%. 
;One - 1 
;Two - 2-19 
;Three - 20-22 
+0

Я не вижу назначения длины и длины (с учетом регистра). Может ли это быть связано? – OMGtechy

+0

Я забыл упомянуть и оставил его в предположении, что% length% оценивается правильно, когда он используется в команде Message Box. Поэтому я не уверен, почему% length% <2 и == 2 и> 2 не работают, определяя, какое сообщение отображать. – user2673148

+1

Пожалуйста, если у вас есть ответ, отправьте ответ - не редактируйте свой вопрос, чтобы сказать «разрешено». Это не обычный форум. Люди знают, что ваш вопрос «решен», когда вы отмечаете ответ как принятый. Поэтому, пожалуйста, исправьте свой вопрос на вопрос, и переместите свое решение на новый ответ - просто прокрутите вниз до места, где говорится: «Ваш ответ» и разместите там. Тогда вы можете принять ответ и получить два очка! – bgmCoder

ответ

0

Я отредактировал исходное сообщение. Проверьте первую строку.

(! Решаемые мне нужно, чтобы избавиться от% в% длины% при сравнении его со значением, равным 2.)

Edit: И, BGM, вы знаете, что вы должны ждать в день, чтобы отметить свой собственный ответ в качестве правильного ответа? Я не вернусь завтра :)

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