2020年11月08日
川俣晶の縁側ソフトウェアC# コーディング How To total 854 count

【入門級】if (!(i != 2 && i != 4))を短くする

Written By: 川俣 晶連絡先

 if (!(i != 2 && i != 4))というif文がありました。

 機能を変えずにもっと短くしてよと言われました。

 できるでしょうか?

 できます。

 if (i == 2 || i == 4) でオッケーです。

 結果に変化はありません。

 ですが文字数は減りました。

 一般的に【条件判断式を逆にする(!=を==にする)】【&&を||にする】という作業を行うと、逆の条件判定に書き換えられます。そうするとこの場合否定演算子を取ることができて、式を短くできます。

罠の数々 §

  • 【&&を||にする】という手順は忘れないようにしよう。それを忘れると全く違う判定に化けてしまう
  • もっと複雑な式だと書き換えにはいろいろと手間が掛かる

参考リンク §

ブール論理演算子 (C# リファレンス)

 &&と||に置き換えるテクニックは、&を|に置き換えるために使えるだろうか。上記のリンクから確認してみよう。ビット演算を理解していれば答が出せるぞ!

リポジトリ §

https://github.com/autumn009/cshowto

SameCond §

using System;

class Program

{

    static void Main()

    {

        for (int i = 0; i < 10; i++)

        {

            Console.Write(i);

            if (!(i != 2 && i != 4)) Console.Write("[HIT]");

        }

        Console.WriteLine();

        for (int i = 0; i < 10; i++)

        {

            Console.Write(i);

            if (i == 2 || i == 4) Console.Write("[HIT]");

        }

        Console.WriteLine();

    }

}

実行結果

012[HIT]34[HIT]56789

012[HIT]34[HIT]56789

COOL C# CREW

C#ハウツー連載の解説増量、カラーのソース、新規書き下ろし追加の読みやすい単行本はこちら。

C#ハウツー: 逆引き入門・こんな機能はどう書くの?