#1の方の解答を先にお読みいただいた上で。 条件演算子はifとおきかえれますので、 d=K-37?1:-1 は if(K!=37){d=1}else{d=-1}//数値のa!=bはa-bで代替可能 とかになります。 f?0:h+=d; は if(!f)h+=d; とか。 d=・・・のように、値を選ぶのが初歩的な使い方ですが、 f?0:・・・のように、処理を切り替えるのにも使えます。 ショートコーディングにおいて、if,elseを使うのは避けられます(長いから)ので、 条件演算子を知らないうちにショートコーディングに手を出したのは若干失敗ですね。 >>[]内は、配列と思われますが 誤解。 a=[0,1,2]のように[]の前に変数名になりうるものが無ければ配列になりますが、 Z[ ]の形ですので、Zという配列の(h+E[i]+d)番目の値を参照しています。 この値が仮に0だとすると、f+=Z[