15:14:02TwitterFacebookはてブPocketLINEswitch文は多くのプログラミング言語に使用される概念で、プログラミング言語全般の基本的な概念になります。言うなれば、if文のようなものです。言えば、switch文はif文同様に条件分岐に使うロジックなので、if文と比較して解説されることがほとんどです。switch文はif文同様プログラミング言語の基本なのでどのプログラミング言語にも使われているのですが、今回はC言語をベースに解説していきます。C言語だから何か特殊な用法が含まれているわけではなく、たとえばJavaやSwiftなどでもほぼ使い方は同じです。言語仕様上微妙に書き方は違いますが、ロジック自体はほぼ同じなので、C言語での使い方がわかれば後は各プログラミング言語仕様に合わせて記述するだけです。その点についてもif文同様と言えるでしょう。ちなみにC言語を選んだ理由としては、一般的に認知されている言語のなかで古いからです。JavaやSwiftのswitch文がC言語のswitch文を参考にして作られたというわけではありませんが、先に存在したC言語の影響は少なからずあったかと思います。C言語より古い言語ではアセンブラにもswitch文はありますが、アセンブラは誰も使っていないかと思うのでスルーすることにします。COBOLについてはswitch文ではなく、同じ使い方のものとしてEVALUATE文があります。switch文の概念は古くからある概念で、新しい言語でも使われている、ということです。案件に参画後もしっかりサポートswitch文で出来ることswitch文で出来ることは、上記の通り条件分岐です。ここで気になるのがif文との違いですが、switch文の方がいろいろな場合にわけて処理を実装することが可能です。if文の場合、基本的に○○か○○でないか、という二つに条件分岐させます。フラグが立っていたら処理を行う、そうでなかったら処理を行わない、といった使い方がif文の基本です。一方で、switch文の場合並列で複数の処理パターンを用意することができます。フラグが1だったら1のときの処理、フラグが2だったら2のときの処理、フラグがなかったらなかったときの処理、といったイメージです。if文でもネスト(if文のなかにさらにif文を作って条件分岐を深めること)によって条件ごとの処理を実装することが可能です。一つ目のif文でフラグがあるかどうかを判定する、フラグがなかったら終了、フラグがあった場合は次のif文でフラグが1かどうか判定する、1だったら1の処理を行い、1でなかったら次にフラグが2かどうかを判定する。2だったら2の処理を行い、2でなかった場合は例外処理を行う、といったイメージです。文章で見ていてもよくわからなくなりそうですが、要するに1つずつ比較すればif文でも複数の条件分岐が可能だということです。複数の条件がある際にはif文で実装するのは面倒でわかりにくいです。そこで便利なのがswitch文です。switch文の使い方switch文の概要は上記の通りですが、実際のソースコード例を見てswitch文の使い方を確認しましょう。switch文のフォームは以下のようになります。値2:式の結果と値2が一致したときの処理break;default:式の結果がどの値とも一致しなかったときの処理}caseの後ろにそれぞれ条件を記述し、なかに処理を記述します。処理の後ろにbreakが付いていますが、これはswitch文を抜けるためのものです。breakがないとそのままswitch文のなかの処理が継続されるので、他のcaseの条件に合致しなければ最後のdefaultの処理が実行されてしまいます。このdefaultというのはどのcaseにも当てはまらなかった場合の処理です。上記の通りbreakさせないとdefaultの処理も実行されてしまうのですが、基本的にはbreakさせるのでcaseに当てはまらなかったときのみ実行されます。コードとしてはdefaultとなっていますが、どちらかというと例外処理の記述に使う場合が多いでしょう。caseの方に例外を書くという考え方も出来ますが、そのようなシステムはあまりないかと思います。次にサンプルコードを紹介します。0;}上記のソースコードを実行すると、コンソールには以下のように出力されます。5の目が出ました本来は最初の変数を1~6のランダムで取るかと思いますが、今回はswitch文に集中するために変数はランダムではなく5を入れました。上記のサンプルコードはswitch文を学習する際に最初によく出てくる例です。ループ分のなかにswitch文を入れることも多いですが、その場合breakはループには反映されません。breakして抜けるのはあくまでもswitch文だけで、ループまで抜けるわけではないということです。以下のようなサンプルコードがあります。0;}上記のソースコードを実行すると以下のようにコンソール出力されます。ループ開始1回目のループでswitch文開始1回目のループでcase11回目のループでswitch文終了2回目のループでswitch文開始2回目のループでcase12回目のループでswitch文終了3回目のループでswitch文開始3回目のループでcase13回目のループでswitch文終了ループ終了まずswitchの後ろのかっこには1が入っているので、case1にしか行かない仕様になっています。ループカウントを加算、出力しながらループを回しているのですが、1回目のcase1のbreakを実行しても、ループ自体は抜けないという確認でした。1回目のループでbreakしても2回目のループが回ってくるという非常に簡単な確認だったのですが、重要な概念です。他にもswitch文には応用的な使用法がありますが、まずは今回紹介した基本を押さえ、必要であればその都度調べてみてください。案件量が豊富なアルマサーチ最後に、アルマサーチのご紹介!アルマサーチはフリーランス向けに案件をご紹介することに特化したエージェントサービスです。豊富な案件量から、安定して継続的な案件のご紹介を実現しており、口コミから登録エンジニアが急増中です。週3?4日の案件や在宅リモート案件も。優秀なコンサルタント陣。案件に参画後もしっかりサポート。豊富な案件量フリーランス向けに特化し、業界屈指の案件量を誇ります!週3?4日の案件や、在宅リモート案件もありますし、その他あらゆる希望をしっかりお伝えください。最適な案件のご紹介をさせていただきます。技術に疎く、開発の希望を伝えても響かないエージェント・・・嫌ですよね。アルマサーチにはそのような者は一切おりません!さらに独立にまつわる税金や保険関係に詳しいスタッフが徹底的にサポートさせていただきます。案件に参画後もしっかりサポート常駐先が決まった瞬間に、一度も連絡が取れなくなるエージェント・・・いますよね?アルマサーチでは、そのようなことは一切ありません!常に電話やメールは即対応しますし、月に1度のランチミーティングなどから現場の状況を細かくヒアリングし、就業環境改善に尽力いたします。