Случай 1: int t2=temp%100 + temp>99?2000:1900;
переписать для ясности как: int t2=(temp%100 + temp)>99 ? 2000 : 1900;
И это выражение: temp%100 + temp
равно 140, что больше 99, поэтому выражение имеет значение 2000
.
Случай 2: int t2=temp%100 + (temp>99?2000:1900);
temp
не является GreaterThan 99
, поэтому выражение равно 1900
и добавлено к temp%100
, в результате чего получается 1970
[1121 ]
Случай 3: int t2= temp>99?2000:1900 +temp%100;
temp
не является GreaterThan 99
, поэтому выражение равно 1900+70
, в результате чего в 1970 году
это это все порядок операций; *
и /
имеют приоритет над +
и -
, все операторы имеют приоритет.
if (-t STDIN) {
# stdin is connected
} else {
# stdin is not connected
}
Я обычно использую это в сочетании с-t STDOUT, чтобы узнать, работаю ли я от интерактивной оболочки, или от крона, для включения более вывода.
Вы могли бы также интересоваться IO:: Интерактивный, чтобы выяснить, думает ли Perl, что взаимодействует с пользователем. Просто быть подключенным к tty не означает, что пользователь собирается видеть то, что Вы делаете.
Одно решение состояло бы в том, чтобы использовать tty:
[root@server] ~> tty
/dev/pts/0
[root@server] ~> echo y | tty
not a tty
Но не очень симпатичный...