2014-03-20 3 views
-1

Это может быть очень глупый вопрос, но что означает эта строка в java?Синтаксис Java if и else

Seat tempSeat = rowClass ? allSeatsC[i][j] : allSeatsE[i][j]; 

Я знаю, что это имеет какое-то отношение к функции if, но я пытался переписать ее с if. Но я просто не могу понять, как это работает.

+0

Это называется условный оператор. Подробнее см. Http://stackoverflow.com/questions/2615498/java-conditional-operator-result-type. –

+0

Возможный дубликат [знак вопроса и двоеточие в выражении? что это значит?] (http://stackoverflow.com/questions/6957214/question-mark-and-colon-mean-in-statement-what-does-it-mean) –

ответ

0

? является тройным оператором.

Он похож на оператор if-else, но он возвращает выражение между ? и :, если первое выражение истинно, в противном случае оно возвращает последнее выражение.

Seat tempSeat = rowClass ? allSeatsC[i][j] : allSeatsE[i][j]; 

эквивалентно

Seat tempSeat; 
if(rowClass){ 
    tempSeat = allSeatsC[i][j]; 
}else{ 
    tempSeat = allSeatsE[i][j]; 
} 
0
Seat tempSeat; 
if(rowClass) 
    tempSeat=allSeatsC[i][j]; 
else 
    tempSeat=allSeatsE[i][j] 
0

Его называют троичным или "elvis" оператором. В основном рядный, если заявление

Дополнительная информация: http://en.wikipedia.org/wiki/%3F:#Java (ссылка сломается по форматированием)

Это очень удобно для простых тестов как выше.