我不知道在java中代表什麼問號(?
),我正在做一個小程序,一個Nim遊戲。正在尋找一本書,幫助,並看到了這樣一句話:什麼是「?」在Java中的意思是?
int pinsToTake = (min >= 2) ? 2 : 1;
我不明白,什麼都會?
代表,它可以是與if語句,但是你把它放在一個變量?和:
可以是「別的」? (我剛纔說的這些東西可能會讓人誤解)
我不知道在java中代表什麼問號(?
),我正在做一個小程序,一個Nim遊戲。正在尋找一本書,幫助,並看到了這樣一句話:什麼是「?」在Java中的意思是?
int pinsToTake = (min >= 2) ? 2 : 1;
我不明白,什麼都會?
代表,它可以是與if語句,但是你把它放在一個變量?和:
可以是「別的」? (我剛纔說的這些東西可能會讓人誤解)
其ternary operator
也被稱爲條件運算,看看reference
像Object bar = foo.isSelected() ? getSelected(foo) : getSelected(baz);
如。 operand1 ? operand2 : operand3
- 如果操作數爲真,則返回操作數2,則返回否則操作數3
- 操作數必須是布爾類型
- 操作數1可以是其值是布爾類型
- 操作數的表達式和如果操作數2或操作數3中的一個是字節而另一個是短的,則返回的值的類型將是短的如果操作數2或操作數3中的一個是字節而另一個是短的,則返回值的類型將是短的
- 如果操作數2或操作數3中的一個是字節,short或char,而另一個是可以裝入其他操作數 範圍內的常量int值,則返回值的類型將爲另一個操作數的類型
- 否則,正常的二進制數值升級適用
- 如果操作數或操作數3一個是空,返回的類型將是另一個操作數的類型
- 如果兩個操作數和操作數3是不同類型的,他們中的一個必須與其他類型兼容(澆注料) reference
這就是所謂的Ternary If operator,它只是短手爲if...else
「? :「是一個相當於if else語句的三元運算符。
在您的例子:
pinsToTake = (min >= 2) ? 2 : 1
如果MIN> = 2,則指定2至pinsToTake,否則分配1
max = (a > b) ? a : b;
(A> B)? a:b;是返回兩個值之一a或b的表達式。
測試條件(a> b)。如果它是真的,則返回第一個值a。如果它爲假,則返回第二個值b。
無論返回哪個值都取決於條件測試,a> b。條件可以是任何返回布爾值的表達式。
它被稱爲條件運算符。它是如何工作的。 如果min大於或等於2,那麼第一個值在?之後?這是2這裏將分配給相應的變量,否則第二個值是1這裏將被分配。
感謝您的確認! – Alexein 2012-08-17 12:56:23
This link會告訴你所有你需要的。
摘要備案的緣故:
這就是所謂的條件運算符。這是一個三元運算符, 需要三個術語:
BooleanExpression? Expr1:Expr2
評估了BooleanExpression。如果這是真的,整個表達式的值是Expr1。如果它是假的,則整個 表達式的值是Expr2。
因此它與if語句具有相同的用途,但它是一個 術語而不是整個語句。這意味着您可以將其嵌入 您不能使用整個語句的位置。
這是一個三元運算符。 Check Oracle's doc瞭解更多信息。長話短說,它是一個if-else語句,可以在一行中完成,並用於內部方法和定義變量值。
語法:
boolean_expression ? do_if_true : do_if_false;
並行與if-else語句:
if(boolean_expression)
//do_if_true;
else
//do_if_false;
我不是故意用括號,因爲你只能在do_if_true
和do_if_false
執行的一行代碼。使用的
實施例:
boolean hello = true;
String greetings = hello ? "Hello World!" : "No hello for you...";
這將設置someString
"Hello World!"
作爲由於布爾變量hello
評估爲真。在另一方面,你可以嵌套這個表達式:
boolean hello = true;
boolean world = false;
String greetings = hello ? (world ? "Hello World!" : "Hello Stranger!") : "No hello for you...";
在這種情況下,問候將有一個價值"Hello Stranger!"
;
請參閱[?:](https://en.wikipedia.org/wiki/%3F :)。 – 2012-08-17 13:19:02