パスワードを忘れた? アカウント作成
14268841 journal
日記

yumeの日記: C#学習 7 4

日記 by yume

コメントありがとうございます。

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);
}

●知識チェック
>問題なし

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • by nnnhhh (47970) on 2020年08月17日 12時32分 (#3871417) 日記

    ifと else if ってことなんですかねぇ

  • by Anonymous Coward on 2020年08月17日 11時47分 (#3871390)

    switch文とか三項演算子とか使えばif2つにできなくもない

  • by Anonymous Coward on 2020年08月17日 14時15分 (#3871503)

    配列0~10にメッセージを定義する(2~5は同内容、6~10も同内容)
    乱数値が0未満なら何もしない(if 1回目)
    乱数血が11以上なら何もしない(if 2回目)
    乱数値を添え字にメッセージを出力する。

    • by Anonymous Coward

      こんな感じですね。乱数が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,
                                 

typodupeerror

人生unstable -- あるハッカー

読み込み中...