今天跟公司的童鞋聊天的時候,談到了關於短碼和**的精簡的方式,所以整理出來。
需求很簡單。
首先定義乙個類
class
item
;
然後主函式的場景大概是這樣
public
static
void
main
(string
args
)elsei =
0;if(
x.key
>i)
else
}
這裡面有兩個子場景,就是接下來要討論的。
子場景1
if(x
.key
>i)
else
子場景2
if(x
.key
>i)
else
那麼我們如何來簡化實現這兩類場景呢?第乙個場景很簡單,可以如下優化:
i =(
x.key
>i ?
x.l :
x.r);
第二個場景比較棘手!
因為表示式不能被賦值。
那麼我們需要乙個傳值函式。
public
static
<
t>
boolean
to_(
t s
,t d)d
=s;return
true
;}
有了如上函式我們就可以這樣寫
booleanr =
(x.key
>i ?
to_(i,
x.l)
:to_(i
,x.r
));
r是乙個結果值用來檢測型別是否正確。
如下是完整的**。
package
tpackge
;class
item
;public
class
test01 d =
s;return
true;}
/** * @param args
*/public
static
void
main
(string
args
)else
system
.out
.println(x
.l);system
.out
.println(x
.r);system
.out
.println(i
);system
.out
.println
("--------------------------"
);i =(
x.key
>i ?
x.l :
x.r);
system
.out
.println(x
.l);system
.out
.println(x
.r);system
.out
.println(i
);/*
if ( x.key > i)else
*/system
.out
.println
("--------------------------"
);i =0
;//if ( x.key > i ) else
system
.out
.println(x
.l);system
.out
.println(x
.r);if((
x.key
>i ?
to_(i,
x.l)
:to_(i
,x.r
)))}}
《短碼之美》 1 入門
1 利用scanf 函式在讀至檔案結束時的返回值為 1,輸入正常返回值為1則剛好 1之後就會是0,在邏輯中為假,推出迴圈。include float a,b 0 intmain 2 執行環境在處理負整數時,幾乎都是採用2的補數形式,用2的補數表示 1時,1的所有位數全部都是1,因此取反運算之後,就會...
java 藍橋杯 趣味算式
匪警請撥110,即使手機欠費也可撥通!為了保障社會秩序,保護人民群眾生命財產安全,警察叔叔需要與罪犯鬥智鬥勇,因而需要經常性地進行體力訓練和智力訓練!某批警察叔叔正在進行智力訓練 1 2 3 4 5 6 7 8 9 110 請看上邊的算式,為了使等式成立,需要在數字間填入加號或者減號 可以不填,但不...
JAVA長連線與短連線
最近在使用極光推送,聽用過的同事講了句 使用長連線,心跳機制等知識點,很是熟悉,但是又不能明確的說出其中的不同,所以這裡總結下。長連線,指在乙個連線上可以連續傳送多個資料報,在連線保持期間,如果沒有資料報傳送,需要雙方發鏈路檢測包。短連線是指通訊雙方有資料互動時,就建立乙個連線,資料傳送完成後,則斷...