2013-11-28 2 views
0

Это код vbscript. Пожалуйста, разрешите это и объясните мне причину.Пожалуйста, решите и объясните

a = 10 
b =10 
c = empty 
d= empty 
Msgbox a=b=c=d 

Ожидаемый результат Неверно. Фактический результат True. Pls объясняет, как это сделать.

С уважением Кришнан

ответ

0

То, что вы могли бы рассмотреть пытается это использовать что-то вроде этого:

a = 10 
b =10 
c = empty 
d= empty 
Msgbox a=b AND a=c AND a=d 

Я думаю, что код, который у вас есть вызывает задание, а не сравнение. Несмотря на то, что VBScript использует знак = для обоих, назначение всегда возвращает true.

+0

No. Выражение, содержащее «равно» знак всегда является сравнение в VBScript. – TheBlastOne

4

Все операторы сравнения оцениваются слева направо и имеют одинаковый приоритет. Проблема здесь в том, что «empty = false». Если вы хотите проверить, действительно ли var действительно пуст, вам нужно использовать функцию isEmpty. В логическом сравнении empty = false.

Ergo ваше выражение оценивается:

1. a=b [true] 
2. (a=b)=c [false] because c is empty and false 
3. ((a=b)=c)=d because d is false and 2. is false 

Ergo ложь = ложь, что правда ;-)

+0

Привет. Спасибо тебе за это. Я просто сомневался в том, как это делает сравнение между пустым и логическим значением. Спасибо в любом случае – Krishiyers

+0

@ user2906636 Если этот ответ был самым полезным, примите его, чтобы ответ был отмечен как «ответил», и соблюдайте точки :-). – TheBlastOne

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