C#基本紹介4日目

冒頭の序文:年末のせいで仕事が多すぎて、週末は会社が引きずり出されて社交になりました。これは私の年齢が自分で何かを学ぶ上での障害になるかもしれません。今日から、学習の進歩を加速させます。

1つ:例外キャッチ
例外:構文にエラーはありません。プログラムの実行中に、何らかの理由でエラーが発生し、プログラムが正常に実行されなくなります。
プログラムをより健全で有用なものにするために、try-catch
構文を使用する必要があります
try
{
異常な可能性のあるコード;
}
catch
{
例外の後に実行されるコード;
}

実行プロセス:試行中のコードに例外がない場合、キャッチは自発的に発生しません。試行中のコードが異常な場合、次のコードは実行されず、キャッチ内のコード実行に直接ジャンプします。
Console.WriteLine( "数字の文字列を入力してください");
try
{
int number = Convert.ToInt32(Console.ReadLine());
}
catch
{
Console.WriteLine( "入力コンテンツを数字に変換できません!");
}
Console.WriteLine(number 2);
Console.ReadKey();
上記のコードでは、Console.WriteLine(number
2);内部の番号はエラーを報告します:変数は割り当てられていません。ここでは変数のスコープが含まれます。
変数スコープ:変数のスコープ
は、この変数を使用できるスコープです。
変数のスコープは通常、宣言されている括弧から始まり、その括弧に対応する終了括弧までです。
この範囲内で、変数にアクセスして使用できます。この範囲を超えて訪問することはできません

// tryスコープ外の変数を宣言して、アクセスできるようにします。ここで別の問題があります。変換できないコードを出力した後でも、次の文は
int number =の外にあるため、結果は0になります。0; //変数
Console.WriteLine( "input a string of numbers");
try
{
number = Convert.ToInt32(Console.ReadLine()); // Assignment
}
catch
{
Console.WriteLine( "input content、数値に変換できません! ");
}
Console.WriteLine(number * 2); //
Console.ReadKey();を使用します。

上記のコードはエラーのために0の余分な行を出力するため、入力が特定の条件を満たすようにするには、次の変更を行う必要があります。
//宣言ブール変数
ブールB =真;
//は、それがアクセスできるようにすることを試みスコープ外の変数を宣言し、別の問題がここにあります変換できないコードを出力した後、それは出力0の結果はまだでしょう。。
int型number = 0; //変数を宣言します
Console.WriteLine( "数値の文字列を入力してください");
try
{
number = Convert.ToInt32(Console.ReadLine());
}
catch
{
Console.WriteLine( "入力コンテンツを数値に変換");!
B = falseは、falseに//条件が満たされない場合、セットブール値
}
//このコードを実行するには、一定の条件が満たされる必要があり
、//それが実行される前に、コードを満たすに一定の条件をみましょう、ブール変数を使用し
ている場合(b)// bool値がtrueの場合にのみ実行
{
Console.WriteLine(number * 2);
}
Console.ReadKey();

次に、swicth-caseは、
複数条件の固定値判定
構文
スイッチ(変数または式の値)を処理するために使用されます
{
ケース値1:実行されるコード;
ブレーク;
ケース値2:実行されるコード;
ブレーク;
ケース値3:実行するコード;
break;
..........
デフォルト:実行するコード;
break;
}
実行プロセス:プログラムはスイッチに対して実行され、最初に括弧内の変数または式の値を計算して
から、この値を保持し、各ケースの背後にある値を順番に一致させます。一致が成功すると
、ケースのコードが実行されます。実行が完了すると、ブレークが発生します。スイッチケース構造から飛び出します。
それぞれのケースの値と一致しない場合。現在のスイッチケース構造に
デフォルトがあるかどうかによって異なります。デフォルトがある場合は、デフォルトのステートメントが実行されます。デフォルトがない場合、スイッチケース構造
は何もしません。

if-else-ifメソッド、この推奨事項:複数条件間隔の判断は
bool b = trueを使用します;
10進賃金= 5000;
Console.WriteLine( "入力評価AE"); // ABCDE混乱
文字列レベル= Console.ReadLine();
if (level == "A")
{
wages + = 500;
}
else if(level == "B")
{
wages + = 200;
}
else if(level == "C")
{
}
else if(level == "D")
{
wages- = 200;
}
else if(level == "E")
{
wages- = 500;
}
else
{
Console.WriteLine( "間違った入力、プログラムを終了");
b = false;
}
if (b)
{
Console.WriteLine( "Li Silaiの年俸は{0}"、賃金);
}
Console.ReadKey();

スイッチケース方式、複数条件の固定値判定をお勧めします
bool b = true;
小数賃金= 5000;
Console.WriteLine( "入力評価");
文字列レベル= Console.ReadLine();
スイッチ(レベル)
{
ケース "A": wages + = 500;
break;
case "B":wages + = 200;
break;
case "C":break;
case "D":wages- = 200;
break;
case "E":wages- = 500;
break;
default:Console.WriteLine( "入力エラー、プログラムを終了します!");
b = false;
break;
}
if(b)
{
Console.WriteLine( "Li Silaiの給与は:{0}"、wages);
}
Console .ReadKey();

包括的な演習:質問:ユーザーが入力したスコアに応じて、A、80B、70C、60D、60以下の場合は90以上の評価を付け
ます
。Eintスコア= 0; Console.WriteLine( "試験スコアを入力");
try
{
スコア= Convert.ToInt32(Console.ReadLine());
}
catch
{
Console.WriteLine( "Input error、exit the program");
}
switch(score / 10)
{
case 10:
case 9:Console.WriteLine( "Level A ");
break;
case 8:Console.WriteLine(" B-level ");
break;
case 7:Console.WriteLine(" C-level ");
break;
case 6:Console.WriteLine(" D-level ");
break;
default:Console.WriteLine( "Level E");
break;
}
Console.ReadKey();

包括的な演習2:年が必要です。月を入力するときは、入力に基づいて月の日数を指定します
。Console.WriteLine( "年を入力してください");
try
{
int year = Convert.ToInt32(Console.ReadLine());
Console.WriteLine( "月を入力してください ");
try
{
int month = Convert.ToInt32(Console.ReadLine());
if(month> = 1 && month <= 12)
{
int day = 0;
switch(month)
{
case 1:
case 3 :
ケース5:
ケース7:
ケース8:
ケース10:
ケース12:
日= 31;
休憩;
ケース2:
if((year%400 == 0)||(year%4 == 0 && year%100!= 0))
{
日= 28;
}
else
{
日= 29;
}
休憩;
デフォルト:
day = 30;
break;
}
Console.WriteLine( "{0} year {1} has {2} days in the month"、year、month、day);
} //月末番号が正常な場合
else
{
Console.WriteLine ( "入力された月が間違っている、プログラムを終了する");
}
} //月末は
catch
{
Console.WriteLine( "入力された月が間違っている、プログラムを終了する");
}
} //年末は
catch
{
コンソールを試す.WriteLine( "年を間違って入力し、プログラムを終了してください!");
}
Console.ReadKey();

3. whileループ構造
構文
while(loop condition)
{
loop body;
}
実行プロセス:プログラムはwhileまで実行され、最初にwhileの括弧内のループ条件が確立されているかどうかを判別します。確立されている
場合はtrueを返します。 、ループ本体を実行します。ループ本体を1回実行すると、
ループ状態に戻って再度判定ます。保持している場合はループ本体を実行し続けます。保持していない場合はwhileループから飛び出します。
whileループでは、通常、ループ条件を変更して1日保持されないようにする
ことができるコード行があります。ループ条件を変更できるコード行がない場合、ループ条件は常に確立されます。これをこれと呼びます。このループ
はエンドレスループと呼ばれます。
最も単純で最も一般的に使用されるエンドレスループ:
while(true)
{

}

特徴:最初に判断してから実行します。ループが一度も実行されない可能性があります。

//コンソールに10回印刷します
//ループ本体:console.writeLine( "
何度も何度も")//ループ条件:10回印刷します

        //定义一个循环变量来记录循环的次数,每循环一次,变量自增1
        int number = 0;
        while (number < 10)
        {
            Console.WriteLine("一遍又一遍{0}",number);
            number++;//每循环一遍,变量自增1
        }
        Console.ReadKey();

Whileループの演習
/
1〜100の各数値と
ループ本体の合計を1 + 2 + .....
ループ条件:数値<= 100
/
int i = 1;
int sum = 0;
while(i <= 100)
{
sum + = i;
i ++;
}
Console.WriteLine(sum);
Console.ReadKey();

        /*
         求1-100每个偶数加起来的和
         循环体 累加的过程
         循环条件:number <=100
         */
        int i = 1;
        int sum = 0;
        while (i <= 100)
        {
            if (i % 2 == 0)
            {
                sum += i;
            }
                i++;
        }
        Console.WriteLine(sum);
        Console.ReadKey();

        /*
         求1-100每个奇数加起来的和
         循环体 累加的过程
         循环条件:number <=100
         */
        int i = 1;
        int sum = 0;
        while (i <= 100)
        {
            if (i % 2 != 0)
            {
                sum += i;
            }
            i++;
        }
        Console.WriteLine(sum);
        Console.ReadKey();

第4に、breakキーワード
1)の役割は、スイッチケース構造から飛び出すことができます。
2)現在のサイクルから飛び出すことができます。
ブレークは通常、単独では使用されませんが、if判定と一緒に使用されます。つまり、特定の条件が満たされたときに、ループしなくなります。

ループ中の5つの演習
/
クラスサイズの入力と入力後の生徒の成績、成績平均クラスの生徒と合計スコアの計算
/
//ループ:生徒の成績の入力を求め、整数型に変換し、累積合計スコア
//ループ条件:入力回数がクラス番号
Console.WriteLine( "クラス番号を入力してください!");
int sum = 0;
int i = 1; //サイクル数を格納する変数を宣言します
intNumberOfPeople = Convert.ToInt32( Console.ReadLine());
while(i <= NumberOfPeople)
{
Console.WriteLine( "{0}のスコアを入力してください!"、i);
intスコア= Convert.ToInt32(Console.ReadLine());
合計+ = score; //各学生のスコアを合計スコア
i ++に追加します;
}
Console.WriteLine( "平均スコアは{0}、合計スコアは{1}"、sum / NumberOfPeople、sum);
Console.ReadKey();

/
先生は生徒たちに尋ねました、あなたはこの質問をしますか?生徒が「はい(y)」と答えた場合、学校は解雇される可能性があります。生徒がいいえ(n)と答えた場合、
教師はもう一度それを伝え、生徒に
1かどうかを尋ね、学習する
まで学校を辞めることができます。2生徒会議または教師が話すまで10回ではありません。放課後
の最初の質問は私自身の考えです。逆はビデオ教師の練習に基づいてい

ます/文字列student = "";
while(student!= "y")
{
Console.WriteLine( "教師は再び話しますそして尋ねられた:あなたはそれを知っていますか? ");
Student = Console.ReadLine();
}
Console.WriteLine("わかりました、あなたはそれを知っています、学校は終わりました! ");
Console.ReadKey();

                                bool b = true;
        int second = 0;
        string student = "";
        while (student != "y")
        {
            if (second != 10)
            {
                Console.WriteLine("老师讲一遍并问道:你会了吗?");
                student = Console.ReadLine();
                second++;
            }
            else
            {
                Console.WriteLine("十遍,老师被气死了!");
                b = false;
                break;
            }
        }
        if (b)
        {
            Console.WriteLine("好的,会了就放学!");
        }
        Console.ReadKey();
                    //反向做法
        string student = "";
        int i = 1;
        while (student != "y" && i <= 10)
        {
            Console.WriteLine("这是老师第{0}几遍讲,你会了吗?", i);
            student = Console.ReadLine();
            if (student == "y")
            {
                Console.WriteLine("会了就放学!");
                break;
            }
            i++;
        }
        Console.ReadKey();

                     /*
         2006年培养学员80000人,每年增长25%,请按照此增长速度,到哪一年培训学员人数达到20万人?PS:这题开始我把判断条件写反了,看了十多分钟才发现问题
         */
        //循坏体:在原基础上,学员每年增长25%累加
        //循环条件:达到20W
        double student = 80000;
        int year = 2006;
        while (student <= 200000)
        {
            Console.WriteLine("现在有{0}人", student);
            student += Convert.ToInt32(student * 0.25);
            Console.WriteLine("经过一年有{0}人", student);
            year++;
        }
        Console.WriteLine("{0}年,人数达到20W", year);
        Console.ReadKey();

                    /*
         提示输入用户名和密码 用户名为admin密码888888
         只要用户名或者密码错误就重新输入
         最多能输入10此
         */

        //循环体,让用户输入用户名和密码
        //10次,或者输对
        int i = 1;
        string useName = "";
        string usePws = "";
        while ((useName != "admin" || usePws != "888888")&&i<=3)
        {
            Console.WriteLine("输入用户名");
            useName = Console.ReadLine();
            Console.WriteLine("输入密码");
            usePws = Console.ReadLine();
            i++;
        }
        Console.ReadKey();

                    2、第二个循环用户B的用户名不能跟A一样,或者为空,
         //循环体:提示用户B输入用户名  接收  判断
         //用户名为空 或者跟A相同
         */
        Console.WriteLine("请输入用户名,不能为空");
        string userNameA = Console.ReadLine();
        while (userNameA == "")
        {
            Console.WriteLine("用户名为空,重新输");
            userNameA = Console.ReadLine();
        }
        Console.WriteLine("请输入用户名,不能为空");
        string userNameB = Console.ReadLine();
        while (userNameB == "" || userNameB == userNameA)
        {
            if (userNameB == "")
            {
                Console.WriteLine("用户名不能为空,重新输入!");
                userNameB = Console.ReadLine();
            }
            else
            {
                Console.WriteLine("用户名重复,重新输入!");
                userNameB = Console.ReadLine();
            }
        }

6、do-whileループ構造
構文:
do
{
loop body;
} while(loop condition);
実行プロセス:プログラムは、実行が完了した後、最初にdoでループ本体を実行し、do-whileループ
が確立されている場合はそのループ条件を判断します。、次に、doでループ本体の実行を続行します(確立されていない場合)。その後、do-whileループからジャンプします。
特徴:最初にループし、次に判断し、ループ本体を少なくとも1回実行します。

おすすめ

転載: blog.51cto.com/13544652/2576234