LoginSignup
x9jdzhcc72mxib2azgcyo
@x9jdzhcc72mxib2azgcyo

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

条件分岐 C# 解読

解決したいこと

入力チェック時のif文についてですが、よく理解できずにいます。見本コードはあるので、日本語で解説していただけると助かります。

該当するソースコード

 if  (String.IsNullOrEmpty(mail.Text) || String.IsNullOrEmpty(mailcheck.Text))
               {
                    if (String.IsNullOrEmpty(mail.Text))
                    {
                        Label8.Text = "メールアドレスは必須入力です";
                        check += 1;
                    }
                    if (String.IsNullOrEmpty(mailcheck.Text))
                    {
                        Label9.Text = "メールアドレス(確認用)は必須入力です";
                        check += 1;
                    }
                }

0

3Answer

日本語の解説としては、@tetr4lab さん、@nakashima_bikeさんの言う通り。
個人的には、「プログラムの振る舞いを日本語化したところで、本質的な解決につながらない」と思います。

■解決につながらないと考える理由
①プログラムの振る舞いを日本語にすることで、余計に複雑化する。
 個人的に役に立った経験がない。
 プログラム処理目的を日本語でコメントするのは、役に立つと思います。
 日本語化自体を全否定している訳ではないです。
日本語でコメントなど
②この場で質問の回答を得ても、自分の解読力は上がらない。
 おそらく「細分化」ができていないのではないでしょうか?
 ご参考
 https://qiita.com/hirossyi73/items/7785cdd367c774da43df

■提案
小さなサンプルコードを作って、段階的に動きを理解してはどうでしょうか?

■具体的な手順
(1)ソースコードを大雑把に分解してみる
上のサンプルだと、下記(a)-(c)のように分解できる

//構成要素(a)
if(条件式 || 条件式)
{
  //処理
}

//構成要素(b)
if(条件式)
{
  //処理
}

//構成要素(c)
String.IsNullOrEmpty(String)

(2)構成要素で振る舞いが理解できないところを調べる。

ドキュメントを探して、コードサンプルがあれば書いて動かす(コーディング→デバック)。
構成要素に近いものであれば、より良い

レベルがわからないので、参考になりそうなMicrosoftの公式ドキュメントのリンク載せます。
ぜひご自身の手で動かしてください。
構成要素レベルの振る舞いは理解できるようになるはずです。

C#チュートリアル:if と else を組み合わせた使用
https://docs.microsoft.com/ja-jp/dotnet/csharp/tour-of-csharp/tutorials/branches-and-loops?tutorial-step=2

MSDOC-if-else (C# リファレンス)
https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/keywords/if-else

String.IsNullOrEmpty(String)
https://docs.microsoft.com/ja-jp/dotnet/api/system.string.isnullorempty?view=net-5.0

ここまでやれば、後は構成要素の組合せなので、サンプルコードの振る舞いも解読できるようになると思います。
頑張ってください。

2Like

「メールアドレスのテキストボックスとメールアドレス確認用のテキストボックスのどちらにも何らかの文字列が入力されていないと、該当のエラーメッセージを表示するよ」

日本語にするとこんな感じかなぁ。

作りたいプログラムが日本語で説明できないのに正しいコードが書けるわけないじゃん派です。

2Like
  • String.IsNullOrEmpty (《string型の値》)は、《string型の値》がnullでなく、かつ、その文字列が空でない(length0より大きい)場合に真になります。
  • 《bool型の値》||《bool型の値》は、二つの《bool型の値》のどちらか一方でも真であれば(双方真の場合も含む)真になります。
0Like

Your answer might help someone💌