まず 私はJavaはかけません!
ググりながらでやっと少し書けるくらいです
見かけることはよくあるので 読むのならある程度はできます

そのくらいの知識という前提でお読みください

Javaのコードを見ていると無駄に長いです
必要ないところまで(変数名とか)まで長い
IDEなしじゃ無理前提の言語だと思ってます

私は重いIDEは嫌いでエディタしか使わないのでIDEと一緒にJavaも避けてます

長い以外にもいろいろめんどくさく感じる部分はいっぱいあって 特に
・型がある(静的型付け)
・自動でキャストしてくれない
・if(ココ)やwhile(ココ)とかにboolean型しか書けない

がすごく嫌なところです

今じゃJavaにも型推論があるらしいので静的型付けはまだましな気もします
といってもScalaはともかくJavaで型推論してるコードをみたことないです
なので書き方は全く知らないです
varとかautoとかかけばいいのかな?

スクリプト言語しか書かない私からすると違う型の計算や 必要な型と違う型が渡されたら自動で変換してくれるのが当たり前なのでそれができないのが手間が多くてイライラされられます

"abc"+123 や "abc"+false は問題ないのに 4+false や while(1) ; でエラーとかなにこの使いづらい言語とかしか言えません



ついついJavaのディスりが長くなってしまいましたが本題です

if文などで条件式しか書けないのでは
while(a = fn()) ;
みたいなC系の言語でよくみる書き方ができません

理由は Javaでは数字や文字列をboolean型にキャストできないから だそうです
なので裏ワザ?ですが fn()がtrueかfalseを返すのなら代入文だけがifの中にありますが 普通に動きます

ですが 実際booleanしか返さない関数以外をこういう使い方したいことが多いです そのはずです


さてここで ひと休憩 CMで~す
とはいかないですが せっかくなのでJavaを書いてみました
実行環境ないのでIdeoneで です
変数の宣言方法から文字の出力方法までググってるので めんどうになって関数fnにするのは諦めました
trueを代入して動いてるのがわかったので OKですよ
class Ideone
{
public static void main (String[] args) throws java.lang.Exception
{
// your code goes here
int count = 5;
while(count--!=0){
System.out.println(count);
}
// 4 3 2 1 0
 
boolean b = false;
if(b = true){
System.out.println("b==true");
}
// b==true
}
}


続きです

!==null とかよく見ますが他の言語みたいにtrueにキャストされるものかどうかで判断したいです
ということで 型に応じて値をtrue、falseにキャストする関数を用意します

int
  return x !== 0
String
  return x !== ""
boolean
  return x
配列
  return true
オブジェクト
  return true

のようにすれば
if(bcas("12")){}
while(bcas(x)){}
と書いてJavaScriptと同じように条件分岐させられます
それでも1関数通すだけ無駄がある って思うんですけどコレ以上は諦めます
bcasはテレビのアレは関係なくて boolean_castの略で付けてます

Javaの基本型の種類すら知らないので 型をJavaScriptっぽい感じで書いたので適当にJavaの型に変換してください(あとで気づきましたが!==なのでJavaじゃまず動かないですね)
オブジェクトと書いてますが classがある言語だとまとめてオブジェクトととれるのかすらわからないです
typeof の値がオブジェクト以外のを処理して残りは全部trueにするというのを考えましたが静的型付け言語にはtypeofってなかった気がします 型は決まってますし
オーバーロードで実装するのなら1つ1つのクラスごとに関数作って全部trueを返すと無駄にいっぱい書くことになりそうですが ユーザが好きにclassを作れるので全部対応させるのは無理になる気がします

JavaScriptみたいに インスタンスは中にある最低限のプロパティが決まったオブジェクトで そのオブジェクトを作るために使った関数(コンストラクタ)が違うってだけなら考え方も簡単でわかりやすいんですけどね

実際 これが当たり前だったりするのでしょうか?
Javaでも代入結果がboolean型ならifの中に代入式だけを書ける というのを見かけて思いつきで書いてみた記事なので自分でもいつも以上のよくわからない謎な内容になってると思います

まとめ

勢いでよくわからない記事を書いてはいけません