0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

プログラム初心者のためのC#入門 #4 条件分岐

Last updated at Posted at 2019-04-07

#4 条件分岐

プログラミングでは,もし条件を満たせばこの動作,そうでなければこの動作,というように条件によって動作を変えるための構文があります.

##if文

if (条件式1)
{
    条件式1がtrueの時実行される.
}
else if (条件式2)
{
    条件式1がfalse,且つ条件式2がtrueの時実行される.
}
else if (条件式3)
{
    条件式1,条件式2がfalse,且つ条件式3がtrueの時実行される.
}
else
{
    すべての条件式がfalseの時実行される.
}

if文は上のようにして条件分岐します,else ifはいくつも書けますが,あまりに多すぎるとコンパイラから怒られることもあります.また,実行する文が一つの場合は波括弧を省略することもできます.
次は具体例を見てみましょう.

ConditionalBranchSample.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConditionalBranchSample
{
    class Program
    {
        static void Main(string[] args)
        {
            int num = 2;
            
            if (num == 0)
            {
                Console.WriteLine("numは0です.");
            }
            else if (num == 1 || num == 2)
            {
                Console.WriteLine("numは1か2です.");
            }
            else
            {
                Console.WriteLine("numは0,1,2以外です.");
            }
        }
    }
}
出力結果
numは1か2です.

##switch-case文

switch (変数)
{
    case 値1:
        変数が値1の時実行される.
        break;
    case 値2:
        変数が値2の時実行される.
        break;
    default:
        変数が値1でも値2でもない時実行される.
        break;
}

switch-case文はラベルが定数でなければならないなど少々使い勝手が良くないため,if文が好んで使われる傾向がありますが,上から条件を判定していくif文と比べるとより早いと言われています.

ConditionalBranchSample.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConditionalBranchSample
{
    class Program
    {
        static void Main(string[] args)
        {
            double num = 3;

            switch (num)
            {
                case 0:
                    Console.WriteLine("numは0です.");
                    break;
                case 1:
                    Console.WriteLine("numは1です.");
                    break;
                default:
                    Console.WriteLine("numは0,1以外です.");
                    break;
            }
        }
    }
}

次回はループ処理について説明します.
##練習問題
int型の変数yearを定義して,西暦年をyearに代入すると平成何年か画面に出力するコードを書いてください.

解答例
元年と表示するのが個人的こだわりポイントです.
ConditionalBranchSample.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConditionalBranchSample
{
    class Program
    {
        static void Main(string[] args)
        {
            int year = 1998;

            if (year == 1989)
                Console.WriteLine("平成元年です.");
            else if (year > 1989 && year <= 2019)
                Console.WriteLine("平成" + (year - 1988) + "年です.");
            else
                Console.WriteLine("平成ではありません.");
        }
    }
}
0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?