2016-08-19 5 views
-5

IF OFFSET> = 0 THENЧто значит "?"

TIME_LOCAL: = ((current_time + OFFSET)> 24) ? ((current_time + OFFSET) - 24) : (current_time + OFFSET);

еще

TIME_LOCAL: = ((CURRENT_TIME + OFFSET) < 0) ? ((current_time + OFFSET) + 24) : (current_time + OFFSET);

endif;

+0

Это не законный VBA ... или VB.NET. Что это за язык? –

+0

В ** VBA ** токен '?' - это ярлык для инструкции 'Print' (что эквивалентно' Debug.Print'), а VBE (редактор) автоматически изменяет '?' На 'Print'; маркер ':' обычно является * разделителем команд * и используется для объединения нескольких операторов в одну и ту же логическую строку кода, например. 'For i = 0 To 100: Debug.Print i: Next' - при использовании сразу после идентификатора в начале строки он обозначает метку * строки *, например. 'CleanFail:', который может использоваться в операциях 'On Error', например. 'On Error GoTo CleanFail' или просто с помощью операторов GoTo. Строки не заканчиваются w/';' в VB. –

ответ

2

Условный оператор (? :) возвращает одно из двух значений в зависимости от значения булевого выражения. Ниже приведен синтаксис условного оператора. состояние? first_expression: second_expression;

+0

Это * ternary * условный оператор, и это не законно в VBA. –

+1

Да, согласен. Этот код не VBA. Тег нужно изменить. Который я не могу сделать. –

+0

Я мог бы, но, видимо, [нет такого тройственного оператора в VB.NET] (http://stackoverflow.com/q/576431/1188513), поэтому я не знаю, на каком языке это. –