yumeの日記: C#学習 7 4
コメントありがとうございます。
Microsoft Learn 『C# で if-elseif-else ステートメントを使用して決定ロジックをコードに追加する』
・C++と同じ。
●課題 2つのifを使ってビジネスルールを実装する
0~11の乱数 daysUntilExpirationに従って、
・10以下
・5以下
・1
・0
のケースそれぞれで異なるメッセージを出力する。また、これ以外のケース(11以上)では何も出力しない。
>if二つだけでできるんだろうか。直感的には次のようなコードになるが、if文は4つ使っている。
Random random = new Random();
int daysUntilExpiration = random.Next(12);
int discountPercentage = 0;
string a1 = "Your subscription will expire soon. Renew now!";
string a2 = $"Your subscription expires in {daysUntilExpiration} days.\nRenew now and save 10%!";
string a3 = "Your subscription expires within a day!\nRenew now and save 20%!";
string a4 = "Your subscription has expired.";
string message = "";
if (daysUntilExpiration == 0) message = a4;
else if (daysUntilExpiration == 1) message = a3;
else if (daysUntilExpiration <= 5) message = a2;
else if (daysUntilExpiration <= 10) message = a1;
Console.WriteLine(message);
>「何も出力しない」を厳密にいえば空のstringもダメかもしれない。その場合、message変数を使わずに、単にすべての行にConsole.WriteLineを書く。
>if二つがちょっとわからない。分岐するパターンが5つあるなら、ifは4つは必要ではないか。解答を見る。
>解答でもめっちゃif使ってた。最低2つって意味だったのか? まぁいいや。
●知識チェック
>問題無し
Microsoft Learn『C# で配列と foreach ステートメントを使用して、データのシーケンスを格納し、反復処理する』
●はじめに
●演習 - 配列の基礎
・宣言は 型名[] 変数名 = new 型名[配列数];
ex. string[] mojihairetsu = new string[5];
・配列もnewで宣言し、メモリを確保する。
・各要素には 変数名[添字]でアクセスする。
mojihairetsu[0] = "koko ha 0 ban dayo";
・中括弧で宣言時に中身を決めて置ける。
string[] mojihairetsu = {"0ban","1ban","2ban"};
・配列のサイズは .Lengthでわかる
mojihairetsu.Length // 3
●演習 - foreachステートメント
・forループを配列に使うときに書きやすくなるやつ
foreach (型名 ループ内で使う変数名 in 配列の変数名)
・「ループ内で使う変数名」に何かする=配列の各要素に何かする。
●課題
・注文IDデータ(B123やC234など)を配列に格納する
・B始まりのIDを出力する
string[] cIDs = {"B123", "C234", "A345", "C15", "B177", "G3003", "C235", "B179"};
foreach(string ID in cIDs)
{
if(ID.StartsWith("B")) Console.WriteLine(ID);
}
●知識チェック
>問題なし
二つのif… (スコア:2)
ifと else if ってことなんですかねぇ
無理矢理 (スコア:0)
switch文とか三項演算子とか使えばif2つにできなくもない
素直に書く (スコア:0)
配列0~10にメッセージを定義する(2~5は同内容、6~10も同内容)
乱数値が0未満なら何もしない(if 1回目)
乱数血が11以上なら何もしない(if 2回目)
乱数値を添え字にメッセージを出力する。
Re: (スコア:0)
こんな感じですね。乱数が0から11までの整数なら、そもそもif文不要です
string a1 = "A";
string a2 = "B";
string a3 = "C";
string a4 = "D";
string[] tbl = {a1,a2,a3,a3,a3,a3,
a4,a4,a4,a4,a4,a4,