コードを書いていると、booleanの状態を反転させたいケースがあります。
様々なコーディング方法
プログラミングは、求まる結果はひとつでも、どのように実装するかは自由ですし、様々な方法があります。
今回は、Javaを例にとって色々やってみましょう。
if~elseで普通に書く
普通に書いてみます。
private boolean sw = false;
if(sw == true){
sw = false;
}else{
sw = true;
}
普通ですね。
プログラミングを覚えたての人でもこれなら簡単に書けます!
三項演算子使ってみる
ちょっとテクニカルなフリをしてみます。
private boolean sw = false;
sw = sw ? false : true;
おっ。なんかそれらしいですね。デキる人みたいです。ただ読みづらいですね。
一目で何が行われているかわかりづらく、良いコードとは言えません。
演算子を使ってみる
無理やりやってみます。
private boolean sw = false;
sw = (sw == false);
目的は達成できていますが、これもわかりづらいですよね。
否定演算子を使ってみる
これが本命でしょう。
private boolean sw = false;
sw = !sw;
非常に分かりやすく、簡潔です。
まとめ
単純な動作ひとつとっても、様々な実現方法があります。
答えはいくつもありますので、最適な方法は自分で探すしかありません。
多くのプログラマにとって読みやすいコードを書くことを心掛けたいものです。
2018/3/12コード例から型が抜けていた問題を修正。
ご指摘ありがとうございます!
ご指摘ありがとうございます!
コメント
最近Javaを勉強し始めたものなのですが
変数swに型を書いていないのは、初期値のbooleanリテラルから、型推論されるからでしょうか?
鋭いご指摘ありがとうございます!
仰るとおり型の指定は必須です。修正させて頂きました。
確かにJava8には型推論がありますが、ラムダ構文などで引数を受け取ったり、総称型やワイルドカードを指定する際に、あえて型を明示する必要がない程度のものです。
型推論といえば、JDK10からvar構文が実装されるようです。それは仰っている使い方(右辺の構文によって型が推論される)と同じ使い方が出来るので楽しみですね。
[…] JSの比較演算子なりとVue.jsのmethodsを組み合わせればいけそう。。。 […]
[…] JSの比較演算子なりとVue.jsのmethodsを組み合わせればいけそう。。。 […]
[…] JSの比較演算子なりとVue.jsのmethodsを組み合わせればいけそう。。。 […]