[英]what does mean in java <=0?0:1;
我試圖用Java理解這個程序,但是我是這種語言的新手。
你能告訴我什么嗎
<=0?0:1;
手段?
是從以下代碼中遞減的矩陣元素(tabu)
public void decrementTabu(){
for(int i = 0; i<tabuList.length; i++){
for(int j = 0; j<tabuList.length; j++){
tabuList[i][j]-=tabuList[i][j]<=0?0:1;
}
}
}
您沒有正確看操作員。
這是條件運算符?:
,它是JavaScript或Java(以及其他語言,例如C#)中唯一的三元運算符。 三元表示它具有三個參數。
本質上這是什么意思:
(condition)?(true branch):(false branch)
param1 param2 param3
在您的代碼示例中,條件(param1)為:
tabuList[i][j]<=0
如果為true,則返回0(參數2)。 如果為false,則返回1(參數3)。
然后,通過-=
運算符從tabuList[i][j]
減小返回值。
整個語句:
tabuList[i][j]-=tabuList[i][j]<=0?0:1;
可以寫成:
if (tabuList[i][j] > 0)
tabuList[i][j]--;
tabuList[i][j]-=tabuList[i][j]<=0?0:1;
可以寫成:
int tabuListEntry = tabuList[i][j];
tabuListEntry -=tabuListEntry <=0?0:1;
可以寫成:
int tabuListEntry = tabuList[i][j];
tabuListEntry = tabuListEntry - (tabuListEntry <=0?0:1);
可以寫成:
int tabuListEntry = tabuList[i][j];
int decrementAmount = tabuListEntry <=0?0:1;
tabuListEntry = tabuListEntry - decrementAmount ;
可以寫成:
int tabuListEntry = tabuList[i][j];
int decrementAmount = 0;
if(tabuListEntry <= 0) {
decrementAmount = 0;
} else {
decrementAmount = 1;
}
tabuListEntry = tabuListEntry - decrementAmount ;
可以寫成:
int tabuListEntry = tabuList[i][j];
int decrementAmount = 0;
if(tabuListEntry > 0) {
decrementAmount = 1;
}
tabuListEntry = tabuListEntry - decrementAmount ;
可以寫成:
int tabuListEntry = tabuList[i][j];
if(tabuListEntry > 0) {
tabuListEntry = tabuListEntry - 1;
}
這就像條件一樣工作,將取“ c <= 0?0:1;”。
這意味着如果c小於或等於零,則答案為0,否則為1
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.