一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

C#的結(jié)構(gòu)和數(shù)組

 頭號碼甲 2020-04-26

下面我們繼續(xù)學(xué)習(xí)C#的語法。結(jié)構(gòu)struct,C#中的結(jié)構(gòu)和我們PLC中建立的UDT(結(jié)構(gòu)體)是一樣的。里面存儲了相關(guān)的不同類型的數(shù)據(jù)。

有一句話我覺得十分重要:方法是依存于結(jié)構(gòu)和對象存在的。這以后我們會個(gè)更加深入的學(xué)習(xí)的。

Struct結(jié)構(gòu):

可以幫助我們一次性聲明不同類型的變量。

語法:

[public] struct 結(jié)構(gòu)名

{

    成員;

}

如下例聲明:

 

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5 using System.Threading.Tasks;
 6 
 7 namespace 草稿
 8 {
 9     class Program
10     {
11         public struct Person
12         {
13             public string name;
14             public int age;
15             public char gender;
16         }
17         static void Main(string[] args)
18         {
19             Person zsPerson;
20             zsPerson.name = "張三";
21             zsPerson.age = 18;
22             zsPerson.gender = '';
23 
24             Console.ReadKey();
25         }
26     }
27 }

 

值得我們注意的是,在聲明結(jié)構(gòu)的時(shí)候,如果我們沒加public,我們是建立不了給結(jié)構(gòu)賦值的,不加public系統(tǒng)默認(rèn)為private私有的。并且我們在命名空間之下Main之上創(chuàng)建的變量其實(shí)不叫變量,而是叫字段。

變量和字段的區(qū)別在于:變量可以存一個(gè)值,之后不停被覆蓋,而字段類似我們PLC背景數(shù)據(jù),可以存儲若干個(gè)數(shù)值。

而且我在這要提出一個(gè)問題,我看了幾個(gè)視頻和數(shù)據(jù),對于字段的命名說法不一樣的,總結(jié)如下

(1)字段和變量要區(qū)別命名,例如:_Name

(2)也有反對這種命名方式的,理由是:在復(fù)雜的編程任務(wù)中,可能影響與其他語言的交互引用的作用,例如VB。net。

這在以后深入學(xué)習(xí)過程中我們在慢慢體會,也歡迎大神們給我解惑。

 


 

數(shù)組

一次性存儲多個(gè)相同類型的變量。

語法:

數(shù)組的類型[] 數(shù)組名 = new 數(shù)組類型[數(shù)組長度];

數(shù)組的長度一旦固定了,就不能在被改變了。

對于int[]類型的數(shù)組,初值為0,string[]數(shù)組初值為null,bool[]數(shù)組初值為false。

下面我們介紹幾種聲明數(shù)組的方式

int[] nums = new int[10]; //沒有聲明數(shù)組元素,推薦

int[] nums = {1,2,3,4,5,6}; //隱式聲明了元素和長度,推薦

int[] nums = new int[3]{1,2,3};  //不推薦,麻煩且長度和元素?cái)?shù)量必須一致。

int[] nums = new int[]{1,2,3,4,5};  //類似第2種

下面看一個(gè)練習(xí)1:從一個(gè)整數(shù)數(shù)組中求出最大值,最小值,總和和平均值。

 

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5 using System.Threading.Tasks;
 6 
 7 namespace 草稿
 8 {
 9     class Program
10     {
11         static void Main(string[] args)
12         {
13             int[] nums = { 1,2,3,4,5,6,7,8,9,0};
14             int max = nums[0];
15             int min = nums[0];
16             int sum = 0;
17 
18             for (int i = 0; i < nums.Length; i++)
19             {
20                 if (nums[i] > max)
21                 {
22                     max = nums[i];
23                 }
24 
25                 if (nums[i] < min)
26                 {
27                     min = nums[i];
28                 }
29                 sum += nums[i];
30             }
31             Console.WriteLine($"這個(gè)數(shù)組的最大值是{max},最小值是{min},總和是{sum},平均值是{sum/nums.Length}");
32             Console.ReadKey();
33         }
34     }
35 }

 

練習(xí)2:

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5 using System.Threading.Tasks;
 6 
 7 namespace 草稿
 8 {
 9     class Program
10     {
11         static void Main(string[] args)
12         {
13             string[] names = { "老楊","老蘇","老鄒","老虎","老牛","老馬"};
14             string str = null;
15 
16             for (int i = 0; i < names.Length-1; i++)
17             {
18                 str += names[i] + "|";
19             }
20             Console.WriteLine(str+names[names.Length-1]);
21             Console.ReadKey();
22         }
23     }
24 }

練習(xí)3:對一個(gè)整數(shù)數(shù)組做如下處理:若元素為正數(shù)將這個(gè)元素+1,若為負(fù)數(shù),將這個(gè)元素-1,元素為0,不變。

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5 using System.Threading.Tasks;
 6 
 7 namespace 草稿
 8 {
 9     class Program
10     {
11         static void Main(string[] args)
12         {
13             int[] nums = { 1,-2,3,-4,5,6,0};
14             for (int i = 0; i < nums.Length; i++)
15             {
16                 if (nums[i] > 0)
17                 {
18                     nums[i] += 1;
19                 }
20                 else if (nums[i] < 0)
21                 {
22                     nums[i] -= 1;
23                 }
24                 else
25                 {
26 
27                 }
28             }
29 
30             for (int i = 0; i < nums.Length; i++)
31             {
32                 Console.WriteLine(nums[i]);
33             }
34             Console.ReadKey();
35         }
36     }
37 }

練習(xí)4:

 

 

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5 using System.Threading.Tasks;
 6 
 7 namespace 草稿
 8 {
 9     class Program
10     {
11         static void Main(string[] args)
12         {
13             string[] names = { "","","好人"};
14             for (int i = 0; i < names.Length/2; i++)
15             {
16                 string temp = names[i];
17                 names[i] = names[names.Length - 1 - i];
18                 names[names.Length - 1 - i] = temp;
19             }
20             for (int i = 0; i < names.Length; i++)
21             {
22                 Console.Write(names[i]);
23             }
24             Console.ReadKey();
25         }
26     }
27 }

 

練習(xí)5:冒泡排序:就是將一個(gè)數(shù)組中的元素從大到小,從小到大排列。

       分析:需要兩個(gè)循環(huán),外層循環(huán),控制比較次數(shù),內(nèi)層循環(huán),控制交換次數(shù)。

 

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5 using System.Threading.Tasks;
 6 
 7 namespace 草稿
 8 {
 9     class Program
10     {
11         static void Main(string[] args)
12         {
13             int[] nums = { 9,8,7,6,5,4,3,2,1,0};
14             for (int i = 0; i < nums.Length-1; i++)
15             {
16                 for (int j = 0; j < nums.Length-1-i; j++)
17                 {
18                     if (nums[j] > nums[j+1])
19                     {
20                         int temp = nums[j];
21                         nums[j] = nums[j + 1];
22                         nums[j + 1] = temp;
23                     }
24                 }
25             }
26             for (int i = 0; i < nums.Length; i++)
27             {
28                 Console.WriteLine(nums[i]);
29             }
30             Console.ReadKey();
31         }
32     }
33 }

 

這里面有一點(diǎn)值得我們注意,C#中的數(shù)組下標(biāo)和我們PLC中數(shù)組下標(biāo)正好相反,C#中數(shù)組下標(biāo)的0從左面元素開始計(jì)算。

其實(shí),這種冒泡方式的寫法也就在面試的時(shí)候會用到,在我們C#中,可以直接用一個(gè)方法解決Array.Sort();(只能升序)

Array.Reverse();(反轉(zhuǎn)排列)若想降序:先調(diào)用Array.Sort();后調(diào)用Array.Reverse()。

    本站是提供個(gè)人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多

    人妻一区二区三区在线| 日本办公室三级在线观看| 亚洲av又爽又色又色| 大香蕉伊人精品在线观看| 日韩一区二区三区观看| 久久少妇诱惑免费视频| 国产成人精品99在线观看| 国产成人精品国内自产拍| 亚洲一区二区久久观看| 欧美精品一区二区水蜜桃| 日韩中文字幕视频在线高清版 | 好吊日在线观看免费视频| 国产精品免费福利在线| 欧美同性视频免费观看| 国产精品成人一区二区三区夜夜夜 | 黑丝袜美女老师的小逼逼| 少妇毛片一区二区三区| 伊人网免费在线观看高清版| 日本加勒比在线播放一区| 搡老妇女老熟女一区二区| 欧美午夜一级艳片免费看| 精品亚洲av一区二区三区| 99久久免费中文字幕| 亚洲国产丝袜一区二区三区四| 正在播放玩弄漂亮少妇高潮| 欧美日韩精品综合一区| 亚洲一级二级三级精品| 国产精品午夜福利在线观看| 成人日韩视频中文字幕| 九九热精品视频在线观看| 日本久久精品在线观看| 热久久这里只有精品视频| 国产又粗又长又爽又猛的视频| 黄色国产一区二区三区| 内射精品欧美一区二区三区久久久| av国产熟妇露脸在线观看| 偷自拍亚洲欧美一区二页| 一区二区三区免费公开| 日韩精品中文字幕在线视频| 国产午夜精品久久福利| 欧美加勒比一区二区三区|

    AI助手

    阅读时有疑惑?点击向AI助手提问吧

    联系客服

    微信扫码,添加客服企业微信

    客服QQ:

    1732698931

    联系电话:4000-999-276

    客服工作时间9:00-18:00,晚上非工作时间,请在微信或QQ留言,第二天客服上班后会立即联系您。