#4 「条件分岐」C#を分かりたい(プログラミング素人の備忘録)
どうも、最近C#をかじり始めたのでマガジン作って、シリーズぽくしていきたいと思っています。
今回は、条件分岐についてです。繰り返しは次々回の予定…
注意
この記事(今シリーズ)は初心者がC#をかじりながら、備忘録のような形で投稿していく予定です。
そのため、今シリーズ全体を通して正確性を欠く場合もあるかと思います。
また専門の方などから見れば、無茶苦茶なこと、おかしなことをしているかもしれませんが、ご容赦ください。
前回
条件分岐とは
ifなどを使用して「もしxがyより大きかったら、xの勝ちと表示する」などの条件によってプログラムの動作を分岐させるというものです。
C#ではifとswhichというものがあります。
if
ifとは「もし~なら以下の命令を実行する」というプログラムです。
条件には変数などを条件式に入れることが出来ます。
ex「x>=10」は「xが10以上なら」になる
ちなみに、条件式には""を付けることでテキスト(string)の一致なども設定できます。
使い方は以下の通り
if(条件式)
{
//ここに処理内容
//行う処理は{} で囲む
}
上記の通りに使用すると以下の例のようになります。
//コンソールで入力された数値をxに代入
int x = int.Parse(Console.ReadLine());
if (x>10)
{
Console.WriteLine("入力された数は10より大きいです。");
}
上記の例では入力された数が10より大きいかを確認できます。
10より大きい場合は、「入力された数は10より大きいです。」という文字列をコンソールに表示します。
また、ネストと言ってif文の中にif文を入れ子にできます。
ネストを使用すると、ネストしたif文の各条件をすべてANDとして使用できます。
int x = int.Parse(Console.ReadLine());
if(x >= 10)
{
if(x <= 100)
{
//処理
//上記の処理はxが10以上かつ100以下の場合に実行されます。
//この場合は(x >= 10 && x <= 100)でも代用可。詳細は次回以降
}
}
ただ、これでは条件外の場合の処理が書けないので、次の処理が自動的に実行されてしまいます。
if{}else{}
ifの後にelseを追加することで、ifの条件に合わなかった場合の動作を記述できます。
if(条件式)
{
//処理
}else
{
//処理
}
int x = int.Parse(Console.ReadLine());
if(x>=10)
{
Console.WriteLine("入力された数は10より大きいです。");
}else
{
Console.WriteLine("入力された数は10より小さいです。");
}
このように使用できます。
また、elseにifを付けることもできます。
else if{}
elseにifを付けて、(条件)でなかったかつ(別条件)なら、という処理もできます。これもネストできます。
if(条件式)
{
//処理
}else if(第二条件)
{
//処理
}else if(第三条件)
{
//処理
}
int x = int.Parse(Console.ReadLine());
if(x >= 10)
{
Console.WriteLine("入力された数は10より大きいです。");
}else if (x >= 5)
{
Console.WriteLine("入力された数は5より大きいです。");
}
switch
switch文とは条件に対し、並列的に分岐させる機能です。
条件にしようする変数を設定して、それぞれの条件に一致した場合の処理を並列して記述します。caseを使用して各条件を設定できます。
switchでも""を使用することで、テキストの一致などを使用できます。
switch(条件値)
{
case 条件:
//処理
}
int x = int.Parse(Console.ReadLine());
switch(x)
{
case 1:
Console.WriteLine("x=1");
break;
case 2:
Console.WriteLine("x=2");
break;
default:
Console.WriteLine("x<1 or x>2");
break;
}
上記の場合、x(入力された値)が1の場合は「x=1」、xが2の場合は「x=2」、それ以外(default)では「x<1 or x>2」を表示するようになっています。
caseの終端には「:」を付けます。
各条件の処理の最後には「break;」というswitch文から抜け出す命令が必要です。
また、switch文は複数の条件を設定することもできます。OR条件のように設定した複数のcaseの内、一つでも当てはまれば下の処理が実行されます。
int x = int.Parse(Console.ReadLine());
switch(x)
{
case 0:
case 1:
Console.WriteLine("x=0 or 1");
break;
default:
Console.WriteLine("x≠0 x≠1");
break;
}
上記の場合は、xが0か1の場合は「x=0 or 1」、それ以外の場合は「x≠0 x≠1」と表示されます。
まとめ
今回は、条件について紹介しました。
以下に軽くまとめ
if
if (条件式)
{
//処理
}else if (条件式)
{
//処理
}
ifの後に条件式を()で記述
処理を{}で囲む
条件式はx==1,x<=0など、&&なども使用可(次回詳細)
elseはではないとう場合を指定
else ifで細かく条件指定
switch
switch (条件値)
{
case 1:
//xが1の場合の処理
default:
//すべてのcaseに当てはまらなかった場合の処理
}
switchの後に条件に使用する値を()で記述
処理を{}で囲む
条件値はテキスト(string)も使用可能(""で囲む)
条件の終端には:を記述
defaultですべての条件に当てはまらなかった場合の処理を記述
ifとswitchでのテキストの一致などの使用例
//ifとswitchでテキストを使用した例
string text = Console.ReadLine();
if (text == hello)
{
Console.WriteLine("hello!");
}else
{
Console.WriteLine("hello?");
}
switch (text)
{
case "hello":
Console.WriteLine("Hello!");
break;
case "Hello":
Console.WriteLine("hello!");
default:
Console.WriteLine("hello?");
}
上記のような使い方もできます。
次回予告
次回は演算子の確認をする予定です。
&&とか
参考
主に参考にさせていただいた、ウェブサイトや書籍のリンクです。
すべてではないですが、ありがとうございます。
「スラスラ分かるC# 第2版」
「一週間で身につくC#言語の基本」