溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

C#基礎(chǔ)總結(jié)(三)

發(fā)布時(shí)間:2020-07-12 09:40:37 來(lái)源:網(wǎng)絡(luò) 閱讀:448 作者:朱子 欄目:編程語(yǔ)言

一、if結(jié)構(gòu)的基本語(yǔ)法:

     if(條件)

        語(yǔ)句1;

    執(zhí)行過(guò)程:首先判斷條件的結(jié)果,如果條件為ture,則這行語(yǔ)句1,如果條件為false,則跳過(guò)語(yǔ)句1。執(zhí)行后面的語(yǔ)句。

    注意:

      1)if后面的括號(hào)中的條件,要能計(jì)算成一個(gè)bool類型的值。

        2)默認(rèn)情況下,if語(yǔ)句只能帶1句話,即和if語(yǔ)句有關(guān)系的語(yǔ)句只有語(yǔ)句1.

  if帶多句話可以寫(xiě)成:

  if(條件)

 ?。?/span>

        語(yǔ)句1;

        語(yǔ)句2;

        。。。。。。。。。

   }

  我們?cè)趯?xiě)程序的時(shí),哪怕if語(yǔ)句只帶一句話,也要寫(xiě)在大括號(hào)中。

C#基礎(chǔ)總結(jié)(三)

C#基礎(chǔ)總結(jié)(三)

二、if-else結(jié)構(gòu):

      語(yǔ)法:

       if(條件)

      {

           語(yǔ)句1;

       }

        else

        {

          語(yǔ)句塊2;

        }

執(zhí)行過(guò)程:

         如果條件為ture,則執(zhí)行if帶的語(yǔ)句塊1,并且跳過(guò)else帶的語(yǔ)句2

         如果條件為false,則跳過(guò)if帶的語(yǔ)句塊1,執(zhí)行else帶的語(yǔ)句塊2

     上面兩個(gè)語(yǔ)句塊,根據(jù)條件結(jié)束為ture或False,總要執(zhí)行一個(gè)。

C#基礎(chǔ)總結(jié)(三)

C#基礎(chǔ)總結(jié)(三)

C#基礎(chǔ)總結(jié)(三)

C#基礎(chǔ)總結(jié)(三)


三、if-else if

在if-else if語(yǔ)句中,只有當(dāng)上一個(gè)條件不成立時(shí),才會(huì)進(jìn)入下一個(gè)if語(yǔ)句并進(jìn)行if語(yǔ)句后面的條件判斷。

一旦有一個(gè)if后面的條件為ture,則執(zhí)行此if所帶的語(yǔ)句(塊),語(yǔ)句(塊)執(zhí)行完成后,程序跳出if-else if結(jié)構(gòu)。

如果所有的if條件都不成立,則執(zhí)行最后的else所帶的語(yǔ)句,如果最后沒(méi)有else語(yǔ)句,則什么都不執(zhí)行。


C#基礎(chǔ)總結(jié)(三)

練習(xí)一

C#基礎(chǔ)總結(jié)(三)

練習(xí)二

C#基礎(chǔ)總結(jié)(三)

練習(xí)三

C#基礎(chǔ)總結(jié)(三)

四、switch-case語(yǔ)法:

      switch(表達(dá)式/變量)

           {

              case 值1:語(yǔ)句塊1;

              break;

              case 值2:語(yǔ)句塊2;

              break;

              default: 語(yǔ)句塊3;

              break;

     }

 執(zhí)行過(guò)程:

    首先計(jì)算表達(dá)式,然后根據(jù)計(jì)算的結(jié)果與匹配case后面的值,如果有匹配項(xiàng),則執(zhí)行匹配項(xiàng)后面的語(yǔ)句,

直到break語(yǔ)句跳出 switch-case,如果所有的case值都不匹配,那么default則執(zhí)行 default后面的語(yǔ)句,直到 break結(jié)束。

如果沒(méi)有default,則跳出switch-case,什么都不執(zhí)行。


switch與if的區(qū)別

相同點(diǎn):都可以實(shí)現(xiàn)多分枝結(jié)構(gòu)

不同點(diǎn):

·switch:一般只能用于等值比較

·if-else if 可以處理范圍


五,while循環(huán)的語(yǔ)法

while(條件)   //條件為循環(huán)條件

{

 循環(huán)體(要循環(huán)執(zhí)行的N條程序)

}

執(zhí)行過(guò)程

1  先判斷循環(huán)條件,如果條件為true則轉(zhuǎn)向2,如果條件為false則轉(zhuǎn)向3

2  執(zhí)行循環(huán)體,循環(huán)體執(zhí)行完后轉(zhuǎn)向1

3  跳出循環(huán)體,循環(huán)結(jié)束

在循環(huán)體中,一定要有那么一句話,改變循環(huán)條件中的某個(gè)變量的值,使循環(huán)條件終有那么一天為 false.

While循環(huán)特點(diǎn):先判斷,再執(zhí)行



C#基礎(chǔ)總結(jié)(三)

class Program
   {
       static void Main(string[] args)
       {
           //習(xí)題一
           int i = 0;
           while (i < 100)
           {
               Console.WriteLine("{0}.\t歡迎您來(lái)到傳智播客學(xué)習(xí)!\t",i+1);
               i++;
           }
           Console.ReadKey();
       }
   }

class Program
 {
     static void Main(string[] args)
     {
         //習(xí)題二
         Console.WriteLine("請(qǐng)輸入你們班級(jí)有多少人:");
         int count = Convert.ToInt32(Console.ReadLine());
         int score = 0;
         int sum = 0;
         int i=0;
         while (i< count)
         {
             Console.WriteLine("請(qǐng)輸入第{0}個(gè)學(xué)生的成績(jī)",i+1);
             score = Convert.ToInt32(Console.ReadLine());
             sum += score;
             i++;
          }
         Console.WriteLine("本班級(jí)有{0}人,班級(jí)總成績(jī)?yōu)閧1},平均成績(jī)?yōu)閧2}",count,
             sum,sum/count);
         Console.ReadKey();
     }
 }

class Program
   {
       static void Main(string[] args)
       {
          //習(xí)題三
           Console.WriteLine("這道題你會(huì)做了嗎?(會(huì)Y/不會(huì)N)");
           string select = Console.ReadLine();
           int i = 0;
            while (select=="N"&&i<10)
               {
                   Console.WriteLine("這道題你會(huì)做了嗎?(會(huì)Y/不會(huì)N)");
                   select = Console.ReadLine();
                   i++;
               }
            Console.WriteLine("可以放學(xué)!");
           Console.ReadKey();
       }
   }

class Program
   {
       static void Main(string[] args)
       {
           //習(xí)題四
           double count = 8000;
           int year = 2006;
           while (count < 200000)
           {
               count += count * 0.25;
               year++;
           }
           Console.WriteLine("到{0}年,培訓(xùn)學(xué)員將達(dá)到20萬(wàn)",year);
           Console.ReadKey();
       }
   }


六、do-while

  語(yǔ)法:

    do

      {

          循環(huán)體;

      }while(條件);

  執(zhí)行過(guò)程:

    1.  執(zhí)行循環(huán)體,執(zhí)行完循環(huán)體轉(zhuǎn)向2

    2.  判斷條件是否成立,如果條件為true,則轉(zhuǎn)向1,如果條件為false,則轉(zhuǎn)向3.

    3.  跳出循環(huán),循環(huán)結(jié)束。

    假如循環(huán)條件一開(kāi)始就不成立,對(duì)于while循環(huán),一次都不會(huì)執(zhí)行。對(duì)于do-while循環(huán)體會(huì)執(zhí)行一次。

    所以,do-while的循環(huán)體一般至少會(huì)被執(zhí)行一次。

區(qū)別:   

   while先判斷,后執(zhí)行。

   do-while先執(zhí)行,后判斷

C#基礎(chǔ)總結(jié)(三)

//練習(xí)一
int i = 1;
int sum = 0;
do
{
    sum+=i;
    i++;
}while(i<=100);
Console.WriteLine("1到100之間的整數(shù)和為{0}",sum);
Console.ReadKey();

//練習(xí)二
           string username;
           string password;
           do
           {
               Console.WriteLine("請(qǐng)輸入用戶名和密碼:");
               username = Console.ReadLine();
               password = Console.ReadLine();
               if (username != "admin" || password != "888888")
               {
                   Console.WriteLine("你輸入的用戶名或密碼有誤!請(qǐng)重新輸入!");
               }
           } while (username != "admin" || password != "888888");
           Console.WriteLine("登陸成功!");
           Console.ReadKey();

//習(xí)題三
string name;
do
{
    Console.WriteLine("請(qǐng)用戶輸入學(xué)生的姓名:");
    name = Console.ReadLine();
} while (name != "q");
Console.WriteLine("程序結(jié)束!")
Console.ReadKey();

//習(xí)題四
int number;
bool flag = true;
do
{
    Console.WriteLine("請(qǐng)用戶輸入一個(gè)數(shù)字:");
    try
    {
        number = Convert.ToInt32(Console.ReadLine());
        Console.WriteLine("{0}的二倍是{1}", number, number * 2);
        flag = true;
    }
    catch
    {
        flag = false;
    }
} while (flag);

//第五題
 string input="";
 int number;
 int max=0;
 bool flag = true;
 do
 {
     try
     {
         Console.WriteLine("請(qǐng)輸入一個(gè)數(shù)字:(或end結(jié)束)");
         input = Console.ReadLine();
         number = Convert.ToInt32(input);
         if (number > max)
         {
             max = number;
         }
     }
     catch
     {
         if (input != "end")
         {
             Console.WriteLine("你輸入有誤!程序結(jié)束!");
             input = "end";
             flag = false;
         }
     }
 }while(input!="end");
if(flag)
 {
     Console.WriteLine("你輸入的最大值是{0}", max);
 }
 Console.ReadKey();

class Program
    {
        static void Main(string[] args)
        {
            //習(xí)題六
            int i=0;
            string answer;
            do
            {
                Console.WriteLine("張三表演第{0}次舞蹈",i+1);
                Console.WriteLine("老師你滿意嗎?(Y/N)");
                answer=Console.ReadLine();
                i++;
            }while(answer=="N");
            Console.WriteLine("不錯(cuò)!可以回家了!");
            Console.ReadKey();
        }
    }


七、for 循環(huán)語(yǔ)法:

for(表達(dá)式1;表達(dá)式2;表達(dá)式3)

{

循環(huán)體;

}

for循環(huán)一般用于已知循環(huán)次數(shù)的循環(huán)

一般情況下

表達(dá)式1 用于定義循環(huán)變量和對(duì)循環(huán)變量賦初值。

表達(dá)式2 就是循環(huán)條件

表達(dá)式3 用于改變循環(huán)標(biāo)量的值

執(zhí)行過(guò)程:

1)    計(jì)算表達(dá)式1,轉(zhuǎn)向第步

2)    計(jì)算表達(dá)式2(表達(dá)式2就是循環(huán)條件),如果表達(dá)式2的值為true,轉(zhuǎn)向第3步,如果表達(dá)式2的值為false,轉(zhuǎn)向第5步

3)    執(zhí)行循環(huán)體,轉(zhuǎn)向第4步

4)    執(zhí)行表達(dá)式3,轉(zhuǎn)向第2步

5)    循環(huán)結(jié)束

C#基礎(chǔ)總結(jié)(三)

//問(wèn)題一
int sum = 0;
for (int i = 1; i <= 100; i++)
{
    if (i % 2 == 0)
    {
        sum = sum + i;
    }
}
Console.WriteLine("1-100的偶數(shù)和為{0}", sum);
Console.ReadKey();
//問(wèn)題二
for (int i = 100; i <= 999; i++)
{
    int ge = i % 10;
    int shi = i / 10 % 10;
    int bai = i / 100;
    if (i == ge * ge * ge + shi * shi * shi + bai * bai * bai)
    {
        Console.WriteLine(i);
    }
    Console.ReadKey();
}
//問(wèn)題三
for (int i = 1; i <= 9; i++)
{
    for (int j = 1; j <= 9; j++)
    {
        Console.Write(" {0}*{1}={2:00} ", i, j, i * j);
    }
    Console.WriteLine();
}

C#基礎(chǔ)總結(jié)(三)

//問(wèn)題三
for (int i = 1; i <= 9; i++)
{
    for (int j = 1; j <= i; j++)
    {
        Console.Write(" {0}*{1}={2:00} ", i, j, i * j);
    }
    Console.WriteLine();
}
Console.ReadKey();

C#基礎(chǔ)總結(jié)(三)



break;

1)    可以用于switch-case判斷中,用于跳出switch

2)    用在循環(huán)中,用于立即跳出(終止)循環(huán).

注意:用于循環(huán)中時(shí);跳出的是break所在的循環(huán)

C#基礎(chǔ)總結(jié)(三)

class Program
   {
       static void Main(string[] args)
       {
           int age = 0;
           int sum = 0;
           bool flag = false;
           for (int i = 0; i < 5; i++)
           {
               Console.WriteLine("請(qǐng)輸入第{0}個(gè)人的年齡",i+1);
               try
               {
                   age = Convert.ToInt32(Console.ReadLine());
                   if (age < 0 || age >= 200)
                   {
                       Console.WriteLine("你輸入的年齡不合法!程序終止!");
                       break;
                   }
                   sum += age;
                   flag = true;
               }
               catch
               {
                   Console.WriteLine("你輸入的數(shù)據(jù)有誤!程序終止!");
                   break;
                   flag = false;
               }
           }
           while (flag)
           {
               Console.WriteLine("你輸入的5個(gè)人的平均年齡為{0}", sum / 5);
           }
       }
   }


class Program
    {
        static void Main(string[] args)
        {
            string username ;
            string password ;
            while (true)
            {
                Console.WriteLine("請(qǐng)輸入的用戶名和密碼:");
                 username = Console.ReadLine();
                 password = Console.ReadLine();
                if(username=="admin"&&password=="888888")
                {
                    Console.WriteLine("登陸成功!");
                    break;
                }
                Console.WriteLine("你輸入的用戶名或密碼有誤!請(qǐng)重新輸入!");
            }
                                                                                                                    
        }
    }


class Program
   {
       static void Main(string[] args)
       {
           int i = 0;
           int sum = 0;
           while (i <=99)
           {
               i++;
               if (i % 7 == 0)
               {
                 continue;
               }
               sum += i;
           }
           Console.WriteLine(sum);
       }
   }


continue;

用于循環(huán)中,程序一旦執(zhí)行到continue語(yǔ)句,立即結(jié)束本次循環(huán)(就是不在執(zhí)行循環(huán)體中continue下面的語(yǔ)句了),

直接進(jìn)行下一次循環(huán)(對(duì)于do-while/while直接進(jìn)行下一次循環(huán)條件的判斷,如果條件成立,則再次進(jìn)入循環(huán),

對(duì)于for循環(huán),先執(zhí)行表達(dá)式3,再判斷循環(huán)條件是否成立),

C#基礎(chǔ)總結(jié)(三)

class Program
   {
       static void Main(string[] args)
       {
           int i = 0;
           int sum = 0;
           while (i <=99)
           {
               i++;
               if (i % 7 == 0)
               {
                 continue;
               }
               sum += i;
           }
           Console.WriteLine(sum);
       }
   }



枚舉/常量/結(jié)構(gòu)

常量:

語(yǔ)法:

const 類型 變量名 = 常量值

在定義時(shí)賦值,在其他地方不允許賦值,

枚舉:

讓我們定義一種類型并且在定義這種類型時(shí)我們要指定這個(gè)類型的所有值;

語(yǔ)法:

enum 自己起的類型名稱 {類型的值1,值2,值3,…};

枚舉的定義,一般和類定義在同一個(gè)級(jí)別,這樣,在同一個(gè)命名空間下的所有類都可以使用這個(gè)枚舉。


枚舉的作用:

1) 限制用戶不能隨意賦值,只能在定義枚舉時(shí)列舉的值中選擇.

2)不需要死記每一個(gè)值是什么,只需要選擇相應(yīng)的值

注意:定義枚舉時(shí),值不能為int類型

枚舉類型的變量都可以強(qiáng)制轉(zhuǎn)換成一個(gè)int類型

(int)變量名

把一個(gè)字符串轉(zhuǎn)換成枚舉類型:

自己定義的枚舉類型=自枚

變量 = (自枚)(Enum.Parse(typeof(自枚),”待轉(zhuǎn)換的字符串”));

namespace _01
{
    enum Gender { 男,女}
                                                                 
    class Program
    {
        static void Main(string[] args)
        {
            Gender sex;
            sex = Gender.男;
            Console.WriteLine("請(qǐng)輸入你的性別:");
            try
            {
            string s = Console.ReadLine();
            sex=(Gender)(Enum.Parse(typeof(Gender),s));
                Console.WriteLine("你的性別為"+sex);
            }
            catch
            {
                Console.WriteLine("你輸入的性別有誤!");
            }
        }
    }
}


為什么要用結(jié)構(gòu):

1)    比如我們上課講的為了存儲(chǔ)一個(gè)人的信息,要聲明一組變量,當(dāng)我們要存儲(chǔ)n個(gè)人的信息時(shí),就要聲明n組變量,太麻煩了。

2)    存儲(chǔ)一個(gè)人信息的這幾個(gè)變量之間沒(méi)有關(guān)系,容易混淆。

語(yǔ)法:

訪問(wèn)修飾符  struct 結(jié)構(gòu)名

{

定義結(jié)構(gòu)成員

}

定義好一個(gè)機(jī)構(gòu)后,就可以直接聲明相應(yīng)的變量.

聲明好變量后,通過(guò)變量名.成員名來(lái)訪問(wèn)結(jié)構(gòu)的成員

namespace _02結(jié)構(gòu)
{
     public enum Gender
    {
        男,
        女
    }
    public struct Person //定義一個(gè)叫Penson的結(jié)構(gòu)
    {
        public string name;//結(jié)構(gòu)的成員
        public Gender sex;//結(jié)構(gòu)的成員
        public int age;//結(jié)構(gòu)的成員
    }
    class Program
    {
        static void Main(string[] args)
        {
            Person onePerson;
            onePerson.name="張三";
            onePerson.age = 20;
            onePerson.sex = Gender.男;
            Console.WriteLine("我叫{0},今年{1}歲,我是{2}性", onePerson.name, onePerson.age, onePerson.sex);
            Person secPerson;
            secPerson.name = "李四";
            secPerson.age = 21;
            secPerson.sex = Gender.男;
            Console.WriteLine("我叫{0},今年{1}歲,我是{2}性", secPerson.name, secPerson.age, secPerson.sex);
            Console.ReadKey();
         }
    }
}

可訪問(wèn)性不一致:

聲明的枚舉的訪問(wèn)修飾符的級(jí)別要比類Person的訪問(wèn)修飾符的級(jí)別低。
 enum Gender {男,女}
改為:public  enum Gender {男,女}

enum 的默認(rèn)訪問(wèn)權(quán)限可能是Private,雖然還有些困惑,但加上public沒(méi)錯(cuò).


數(shù)組:

可以幫我們一次聲明多個(gè)同類型的變量。這些變量在內(nèi)存中是連續(xù)儲(chǔ)存的。

數(shù)組聲明語(yǔ)法:

數(shù)據(jù)類型[]數(shù)組名=new數(shù)據(jù)類型[數(shù)組長(zhǎng)度];

int [] score = new int [5];

上句話就是聲明了一個(gè)數(shù)組長(zhǎng)度為5,數(shù)組名叫score的數(shù)組.

通俗點(diǎn)說(shuō):就是聲明了一個(gè)數(shù)組,里面包含5個(gè)int 類型的變量

數(shù)組名叫 score 里面5個(gè)int 類型的變量叫數(shù)組的元素,排列順序?yàn)?0,1,2,3,4

如何訪問(wèn)數(shù)組: 通過(guò)下標(biāo)來(lái)訪問(wèn)數(shù)組 (也叫索引器)

比如我們要想第0個(gè)元素賦予一個(gè)3,可以這樣寫(xiě),

score[0] = 3;

int類型數(shù)組一旦聲明里面的每一個(gè)元素被初始化成0;

通過(guò) 數(shù)組名.Length 可以獲得數(shù)組長(zhǎng)度

Console.Clear(); 清屏

int sum = 0;
int max;
int []score=new int [10];//聲明一個(gè)有10個(gè)元素的數(shù)組
for(int i=0;i<score.Length;i++)
{
    Console.WriteLine("請(qǐng)輸入第{0}個(gè)學(xué)生的成績(jī):",i+1);
    score[i]=Convert.ToInt32(Console.ReadLine());
    //sum += score[i];
}
Console.Clear();
//通過(guò)一個(gè)循環(huán)來(lái)求一個(gè)數(shù)組中所有元素的和
for (int i = 0; i < score.Length; i++)
{
    sum += score[i];
}
Console.WriteLine("{0}個(gè)學(xué)生的平均成績(jī)?yōu)閧1}",score.Length,sum/score.Length);
//輸出數(shù)組每個(gè)元素的值
for (int i = 0; i < score.Length; i++)
{
    Console.WriteLine("第{0}個(gè)學(xué)生的成績(jī)?yōu)閧1}",i+1,score[i]);
}
//求10個(gè)學(xué)生成績(jī)的最高分
max = score[0];
for (int i = 0; i < score.Length; i++)
{
    if (score[i] > max)
    {
        max = score[i];
    }
}
Console.WriteLine("10個(gè)學(xué)生成績(jī)的最高分為{0}",max);
    Console.ReadKey();

C#基礎(chǔ)總結(jié)(三)


//練習(xí)一
 int[] nums = new[] { 12, 15, 21, 26, 64, 25, 89, 46, 75 };
 int max = nums[0];
 for (int i = 0; i < nums.Length; i++)
 {
     if (nums[i] > max)
     {
         max = nums[i];
     }
 }
 Console.WriteLine("這個(gè)數(shù)組的最大數(shù)為{0}", max);
 Console.ReadKey();


//練習(xí)二
int[] nums = new[] { 12, 15, 21, 26, 64, 25, 89, 46, 75 };
int sum = 0;
for (int i = 0; i < nums.Length; i++)
{
    sum += nums[i];
}
Console.WriteLine("這個(gè)數(shù)組的元素和為{0}", sum);
Console.ReadKey();


//練習(xí)三
string[] names = { "梅西", "卡卡", "鄭大世" };
string str="";
for (int i = 0; i < names.Length; i++)
{
    //if (i == names.Length - 1)
    //{
    //    str = str + names[i] ;
    //}
    //else
    //{
    //    str = str + names[i] + "|";
    //}
    if (i == names.Length - 1)
    {
        break;
    }
    str = str + names[i] + "|";
}
Console.WriteLine(str);


//練習(xí)四
int[] nums = new[] {-23,0,-52, 12, 15, 21, 26, 64, 25, 89, 46, 75 };
for (int i = 0; i < nums.Length; i++)
{
    if (nums[i] > 0)
    {
        Console.WriteLine("該元素為正數(shù),故加一為{0}", nums[i] + 1);
    }
    else
    {
        if (nums[i] < 0)
        {
            Console.WriteLine("該元素為負(fù)數(shù),故減一為{0}", nums[i] - 1);
        }
        else
        {
            Console.WriteLine("該元素為0,故不變",nums[i]);
        }
    }
                                                    
}
Console.ReadKey();


//練習(xí)五
 string who;
 string[] nums = { "3", "a", "haha", "8" };
 for (int i = 0; i < nums.Length / 2; i++)
 {
     who = nums[i];
     nums[i] = nums[nums.Length - 1 - i];
     nums[nums.Length - 1 - i] = who;
 }
 for (int i = 0; i < nums.Length; i++)
 {
     Console.WriteLine(nums[i]);
 }
 Console.ReadKey();




向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI