【C#】3小時初學者教學 |Csharp | C# 教學 | C# 入門 | C++++

GrandmaCan -我阿嬤都會5,321 words

Full Transcript

OK 我们直接开始 首先要先去下载C Sharp 的开发环境 这边我会用Visual Studio 也推荐大家使用它 直接在网页上面搜寻Visual Studio Community 这个Community 的意思就是社群版 那社群版就是免费的 这里注意一下 如果你的电脑已经有安装过Visual Studio 如果你的版本是在2019 以下的话 也请你把它更新到2019 以上 好那我们直接点进来 在这里直接下载它 好下载好之后直接安装继续 这里会花一点时间等它一下 好了之后会跳出这个画面 在这里有非常多的东西可以给我们做选择 因为Visual Studio 它是一个开发环境 我们可以在上面开发各式各样的东西 因为这堂课我们是要在上面写C Sharp 所以我们就把这个.NET 桌面开发打勾 如果你之后需要开发其他的东西 可以再来做安装 打勾了之后呢 在右下角这里它会告诉你总共需要多少的空间 像这里就写了6.31 GB 所以如果你的空间不够的话要自己注意一下 在这里你也可以改变 在左下角这里你也可以改变它的安装位置 好那我就直接安装 这个一样需要花一点时间 那我们一样再等它一下 安装好了之后会跳出一个视窗叫我们登入 那我们可以点下面这个以后再说 接着呢它会要你选择一个布景主题 看你想要哪一种颜色 那我比较喜欢深色的 所以我点深色 那接着就直接启动它 然后点选下面这个不使用程式码继续 OK 那我们就成功的把它打开来了 接着直接来撰写第一支程式 在左上角档案的地方 新增一个专案 好那我们先在这个地方选择你要使用的语言 有非常多种 那我们要写的是C Sharp 所以我们点这个C Sharp 点C Sharp之后呢 这边有非常多的模板可以给我们做选择 那我们直接点第一个主控台应用程式 接着呢 这里你可以设定专案的名称 还有它存放的位置 那我都用预设值 在这个地方你要选择使用的版本 那不要选择这个.NET Core 3.1 它是比较旧的版本 所以我们点选.NET 5.0 或是之后可能有更新的 比如说6.0、7.0啊 你都可以做选择 好那我们直接建立 好了之后可以看到这里多了一个Program.cs 副档名是.cs的档案 就是一个C Sharp的档案 这个Program.cs里面写了一堆不知道是什么鬼东西 那大家不用担心 先把它全部删掉就对了 程式码就是人类跟电脑之间沟通的语言 所以我们写的每一行程式码 写的每一个指令 就是在跟电脑说 诶请你去帮我们做哪些事情 比如说我这里写一个system.console.writeline 然后一堆小括号 里面一堆引号写小白 这样子写就是一个C Sharp的指令 一个C Sharp的程式码 那在C Sharp里面 每一个指令结尾的地方都要加上一个分号 来表示这个指令结束了 好那写好程式码之后要怎么样执行它呢 可以看到这边有一个绿色的三角形 把它点下去就会执行了 执行了之后它跳出了一个视窗 然后里面写了一行小白 后面这一串呢 只是在告诉我们这个程式已经执行结束了 所以呢 我们写的这一行指令 就是在跟电脑说 请你帮我们到Console里面写一行小白 那什么是Console呢 Console就是大家看到的这一个黑黑的视窗 它就叫做Console 它就帮我们在里面写了一行小白 OK 所以如果我们今天想要让它写两行 那我们就把这个指令复制一份 假设我想要再让它写一行小黑 好那我们执行 可以看到就在Console里面出现了一行小白 一行小黑 OK 当然如果我们今天想要画一个图形也可以 那我来画一个三角形 我画一下 再复制一行 然后 渐渐有感觉了 OK 就出现了一个三角形嘛 那我们执行它 果然电脑就帮我们画出了一个三角形 OK 那这边大家也可以自己挑战看看 看你可以画出什么其他不同的形状 好那这就是我们的第一堂课 跟大家介绍了C-Sharp的环境建置以及第一支程式 OK 那我们就下一堂课见啦 拜拜 OK 我们直接开始 首先要先去下载C-Sharp的开发环境 这边我会使用Visual Studio 也推荐大家使用它 我们直接到网页上面搜寻 Visual Studio Community for Mac 好搜寻它 然后直接点选这个Visual Studio 2019 for Mac 接着下载 好直接执行它 把它打开 这边等它一下 继续 那这边的话我们只要勾选这个Donet Core就好了 直接安装 好完成 这边它会要我们做登录 那我们可以点稍后再执行 然后呢直接继续 那我们就来新增一个专案 好那我们点选这个主控台应用程式 下一步 我们就来做一个新增一个专案 下一步 那在这边我们要选择使用Donet 5.0 因为呢这个Donet Core 3.1是比较旧的版本 如果我们使用3.1这个版本的话 在之后的课程可能会有些问题OK 当然如果之后有更新的版本 比如说Donet 6.0 7.0之类的 你也可以做选择 好下一步 帮我们的专案取一个名称 那我把它叫做 Console App 1 那你也可以选择这个专案要储存的位置 我就用它的预设值简历 好这样子我们就成功的把VideoStudio打开了 首先我们先来调整一下字体的大小 在左上角我们可以看到 这边左边有一个字型 那我们把文字编辑器 里面的字体大小把它改大一点 把它改成24 终端机的文字大小我也改一下 一样改成24 好按下确定 OK 可以看到呢 这边有一个字型的字体大小 我们把它改大一点 把它改成24 OK 可以看到呢 这边它在program.cs这个档案里面 写了一堆不知道什么鬼东西嘛 那这个program.cs呢 就是一个C Sharp的档案 这边大家先不用担心 我们先把它全部删掉 好 其实程式码它就是人类跟电脑沟通的语言 所以我们写的指令 我们写的程式码 就是在跟电脑沟通说 欸你要做什么事情 比如说我现在写一个指令 System.console.writeline 接着一对小括号 然后在小括号里面写一对双引号 假设里面写的是小白 好最后不要忘记 加上一个分号 在C Sharp里面每一个指令结尾的地方 都要加上一个分号 来表示这个指令已经结束了 OK 那我们写好指令之后 写好程式码之后 要怎么样执行它呢 在左上角的地方 我们可以看到这个箭头 把它点下去 这边它问我们要不要安装Git 先不要管它喔 先取消 好再执行一次 可以看到就写出了小白 为什么呢 因为我们写的这一行指令 就是在跟电脑说 请你在Console里面帮我们写出小白 那什么是Console呢 Console就是大家看到的这个视窗 下面的这个视窗 它就叫做Console 所以呢 它在里面写出了小白 如果我们想要它在Console里面写的是小黑 就把这个双引号里面的小白改成小黑 好再执行一次 它又问我们要不要安装 那如果你觉得它很烦的话就安装吧 这边我先取消 再执行一次 OK 就得到了小黑 就写出了小黑 当然如果我们想要写出多行的话 就可以再写一次这个指令 System.Console.WriteLine 假设我这个写的是小橘 最后不要忘记加上一个分号 来表示指令结束了 好执行 可以看到就先写出了小黑 再写小橘 好 那我们也可以让它写出一个形状 我让它写一个三角形好了 那我这边可以这样子写 System.Console.WriteLine 这边大家也可以自己挑战看看 看你可以画出什么形状 我来画一个三角形 OK 可以看到这里就有一个三角形了嘛 那我们执行 它就帮我们画出了一个三角形 OK 那这个就是我们第一堂课的内容 跟大家介绍了C-Sharp的环境建置 以及我们执行了第一支程式码 我们画了一个三角形 好那我们就下一堂课见啦 掰掰 大家好我是小白 接下来要跟大家介绍的是 常见的资料型态以及变数 好在开始之前先跟大家解释一下 第一行这个绿绿的是什么鬼东西 可以看到它的结构是两个反斜线 后面加上一串文字 那这一行绿绿的东西 它是C-Sharp里面的注解 所谓的注解 大家可以把它想像成 我们在上课的时候 会在课本里面做一些笔记嘛 那这个注解就相当于 程式码里面的笔记 OK 既然它是笔记 就意味着它是写给人类看的 并不是写给电脑看的 所以当程式在运行的时候 C-Sharp看到了这一行人类写的笔记 人类写的注解 就会自动跳过 不去运行它 也就是说这个注解 它并不会影响程式运行的结果 它单纯只是一个 写给人类看的提醒而已 好 假设我想要在这边 再多做一个注解 那我就可以写两个反写线 然后后面加上我想要注解的内容 假设我想要提醒 会看到这份程式码的人说 下面这一行会写出 小白今年几岁 那我就在后面加上 下面这行 会写出 小白 今年几岁 OK 这样子就完成了一个注解 可以提醒 会看到这份程式码的人 下面这一行 会写出小白今年几岁 好 所以注解它的结构 就是两个反写线 后面加上你想要注解的内容 那虽然现在我们这个注解 看起来非常的没有意义嘛 因为这一行程式码 一看就知道 它会写出小白今年87岁 并不需要这个注解 来帮我们做提醒 但是呢 一旦我们的程式码越写越大 越写越复杂的时候 可能你在写的当下 写得很开心 你都了解你自己在写什么 但是过了一个月之后 你再回来看你自己的程式码 你可能会忘记你当下在写什么 你可能会不理解你当下在写什么 所以这个时候 如果你有适时的做注解 就可以达到一个提醒的效果 帮助我们更快的去理解 这份程式码在搞什么 又或者是说今天这份程式码 可能不只有你一个人会看到 你可能有同事或是伙伴 要一起完成一个专案 那这份程式码就可能 不只你一个人看到 这个时候如果你有适时的做注解 就可以让你的同事或是伙伴 更清楚的去了解你在写什么 OK 好这个就是注解笔记 可以帮助我们提醒我们去了解 这份程式码在干嘛 那接下来我们就正式进入 常见的资料型态 其实我们的程式 就是在对一堆的资料 不断的做运算跟处理 那资料又分成了很多种 今天我们就来介绍 常见的几种资料型态 好 第一种叫做字串 英文的话是string 它的写法是一对双引号 那在双引号里面写上 我们想要表达的那一段纯文字 比如说可以写一个人的名字 或是一段自我介绍等等的 只要是一段纯文字 我们都可以用字串 这个资料型态来表达 假设我在双引号里面 写的是小白好帅 那这样子呢 就是一个字串的资料型态 我们表达的是纯文字小白好帅 那可以看到下面console.writeline 里面写的都是一个一个的字串码 为什么呢 因为我们可以看到 它里面写的东西 都是用一对双引号 然后夹着一段文字 这样子的写法 就是一个一个的字串 所以呢我们下面console.writeline 在console里面写出来的东西 都是一个一个的字串喔 OK 再来第二种叫做字源 字源的话 它的英文是char 那它的写法是一对单引号 然后里面写上 我们想要表达的那一个纯文字 那其实字串跟字源 它们是蛮像的喔 只是呢字串我刚刚说了嘛 它是拿来表达一段纯文字 那字源是拿来表达一个纯文字 所以呢假设我今天 想要表达的是字母A 那我就在这一对单引号里面 写上字母A 这样子写呢 就是一个字源的资料型态 它表达的是一个字母A的纯文字 那如果这个时候 你想要表达的是字母AA 就不能用字源这个资料型态喔 因为我们说字源 它是拿来表达一个纯文字 如果你想要表达一个以上的话 就要用字串 所以我们就要把单引号改成双引号 OK 好 接着呢第三个我们要介绍的是 整数 英文的话是int 那整数的话就是 你想的那个整数没有错 就是那个数字123456的那个整数 比如说我今天想要表达的是 小白今年几岁好了 假设小白今年40岁 那我就直接写40 这样子写就是一个整数的资料型态 我们不需要再用一对单引号 把它包起来 或是一对双引号把它包起来喔 直接写数字40 这样子就是一个整数的资料型态 那如果你想要表达的是负整数 也可以我们就直接在前面 加上一个负号 这样子就可以了 但是呢 如果你今天想要表达的是 有小数点的数 比如说一个人的身高 他有可能是160.5 这种有小数点的数 那就不能用整数这个资料型态 整数这个资料型态 它是不能有小数点的 OK 如果你想要表达的是 表达的是有小数点的这种资料 那我们就要用 五点数 这个资料型态 英文的话是Double DOU BOE 那它的写法就是一样 是直接把数字写上去 那后面加上小数点 比如说一个人的身高 我们刚刚说了160.5 就直接这样子写 就是一个五点数的资料型态 OK 好再来 今天要介绍的最后一个 常见资料型态 叫做不零值 英文的话是不零值 BOOL 那这个资料型态 它是拿来判断是或否 如果你想要表达的是是的话 我们就写True True来表达是 如果你想要表达的是否的话 我们就写False False来表达否 或者你可以说True 它是真 那False是假 也可以 那这种资料型态 什么时候会用到呢 比如说今天我们想要判断 小白这一个人 他是男性 他是不是男性 那假设小白他是男性 这个时候我们就可以用True 我们就可以写一个True 来表示小白他是男性喔 那再来 假设今天我们想要判断 小白这个人 他有没有超过90岁 可以看到小白他只有87岁嘛 显然没有超过90岁 那这个时候我们就可以写一个False 来表达小白没有超过90岁 OK 好 那这五个呢 就是我们今天要介绍的 常见的资料型态 在这边我们看到ConsoleWriteLine 里面写的都是 自串这个资料型态嘛 那其实我们也可以在Console里面 写出其他的资料型态 假设我想要ConsoleWriteLine 里面写的是一个 字元也可以 那我们就在里面写一对单影号 假设我想要写的是字元A 好那我们直接执行 可以看到他就先写了一个字元A 然后后面接着写上四个字串 那如果你想要写的是整数 假设是这个30好了 一样可以 那我们执行 他就先写了一个整数30 再接着四个字串 当然如果你想要写的是 伏点数160.5 或者是你想要写的是 不零值Q或是False都可以 好那我们再执行一次 他就先写出了一个不零值False 后面接着四个字串 OK 好 那这个就是我们的常见资料型态 接下来我们来介绍变数 变数的话 大家可以把它简单的想像成 是一个容器 可以放各式各样资料的一个容器 那这个时候你可能会问 那我们把资料放到容器 放到变数里面之后 有什么好处呢 好处就是 可以让我们更方便的去管理这些资料 怎么样个好管理法 我等等会举个例子 这边我们先来了解一下 怎么样创建一个变数 也就是怎么样创建一个容器 首先我们要创建一个容器 就要先指定这个容器 他里面放的资料 资料型态是哪一种 假设我今天想要创建一个容器 他里面放的资料型态 是字串好了 那我就要先写一个string 接着在后面 需要帮这个容器取一个名字 帮这个变数取一个名字 假设我把它叫做name 然后后面写上等于 在等于的右边 我们要写上 要把什么样的资料放到这个容器 放到这个变数里面 这里已经指定了 要放到这个容器里面的是一个字串 所以我们在等于的右边 就要写上一个字串 这里我写一个字串小白 不要忘记我们在每个指定结尾的地方 都要加上一个分号 来表示他结束了 OK 所以我们这样子写 就成功的创建了一个变数 也就是创建了一个容器 我们把这个容器的名字取名叫做name 然后我们指定 这个容器里面放的是一个字串 所以我们在等于的右边 就写了一个字串 那我们写了一个字串小白 他就是把字串小白 放到这个name这个容器 这个变数里面去 OK 当然今天如果我们想要创建 很多个变数也是可以的 假设今天我想要创建 另外一个变数 里面放的是一个字元 那我就写一个chart 后面接着我们要帮这个变数 帮这个容器取一个名称 那这里我就不能再把它叫做name 因为这样有两个变数的名称是一样的 会产生冲突 那这边我把它命名叫做sex 我想要这个sex里面放的是一个字元 那我想要他放的是 小白是男性还是女性 如果是男性 我就用一个大写的M来表示male 如果是女性 我就用一个大写的F来表示female OK 所以我们这边已经指定了 他是一个字元 在等于的右边就要写一个字元 假设小白是男性 我就写一个大写的M来表示male 好最后一样加上一个分号 这样子写呢 就成功的创建了第二个变数 那第二个变数 我们把它命名叫做sex 它里面放的是一个字元 那我们把字元M放到了这个容器里面 也就是这个sex里面 OK 其他一样 那我就不一个一个解释了 假设我们想要创建的是一个 里面放整数的这个容器 这个变数我们就写int 假设我写一个叫做age 把它命名叫做age 里面放的是年纪 假设30岁 我就在等于的右边写一个30 浮点数一样 我们想要创建一个容器 里面放的是浮点数 我就先写一个double 后面要帮它取名字 假设我想要这个变数 想要这个double 里面放的是一个 身高 小白的身高好了 那我就写一个high 把它命名叫做high 那我就写一个180.3 这样子 OK 那最后一个不零值 一样就写一个不 然后 假设我这边想要放的是 一样小白是不是男性 那我写一个 把它命名叫做as male 等于 那假设小白是男性 我就写true 来表达是小白是男性 如果小白是女性 我这边就写false 来表达for小白不是男性 OK 所以呢 我们这样子就成功的学会了 怎么样创建变数 怎么样创建一个容器 那接着呢我们刚刚说了 把资料放到了容器 放到了变数之后 它可以让我们更方便的去管理资料 怎么样个好管理法 来我现在就举个例子 我们可以看到下面console write line 写了四个 四个这个字串嘛 那每一个字串里面都有小白 第一个是有个人叫小白 那第二个是小白今年87岁 第三个是小白身高187公分 第四个是小白讨厌自己87岁 假设今天小白这个人出去晒太阳晒黑了 那他很生气啊 他说我都晒黑了 我为什么要叫小白 我想要改名叫小黑啊 那这个时候我们就需要一行一行的 把小白改成小黑嘛 因为他要把他改名叫小黑了 所以我们就要把这四个字串里面的小白都改成小黑 那我们在执行 那他写出来的才会是小黑嘛 那大家有没有发现我们这样子做 其实是一个非常没有效率的动作 我们现在的程式码是只有四行喔 假设今天我们的程式码是十行 是一百行一千行甚至是一万行 你觉得你有可能这样一行一行的去改吗 就因为一个小白他想要改名叫小黑 我们就这样一行一行的去改 这样太累太没有效率了吗 所以这个时候就是变数 就是我们这个容器派上用场的时候 这里有一个人叫小黑嘛 我们就把这个小黑的名字把它替代掉 我们用一个变数来表示 这边我们就把这个小黑改掉 我们写上加net 这样子写是什么意思呢 我们这边已经创建了一个变数叫做net嘛 那这里又用到net 这样子写的意思就相当于把这个容器里面 这个net这个容器里面的资料 这个字串复制过来 就相当于这个样子 OK我们这样子写就相当于是这个样子 这样子写就相当于是这个样子 因为我们已经把小白这个字串 放到了这个net这个变数里面 所以在这边写net的时候 就是写字串小白的意思 那两个字串做相加 就是两个字串连接在一起的意思 也就是会变成这个样子 连接在一起 OK 所以这个时候我们只要把这边的名字 都把它改成net 这里我也一样把它改成net net加 net加 net加 好那我们再执行一次 可以看到它四行 这四个字串印出来的都是小白 有个人叫小白 小白今年87岁 小白身高187 小白讨厌自己87岁 这个时候小白再出去晒太阳 他晒黑了他很生气 他说我要改名叫小黑 那我们就不需要一行一行的去改了 就在最上面这个变数的地方 把小白改成小黑 我们把net里面放的东西 把它改成字串小黑 那我们再执行一次 可以看到这四个字串印出来的 这四个字串写出来的 就都变成小黑了 我们就不需要一行一行一行的去改 这样子就效率多了嘛 就更有效率了 OK 那变数里面的资料 我们也可以去做更改 假设我想要在这里 把net里面的字串小黑 把它改成字串小黄 那我可以在这边写 net等于字串小黄 最后加上一个分号 这样子写 它就会把net里面的资料 把它改成字串小黄 这个时候我们再去执行 也可以发现 它一开始写出来的第一行 是有一个人叫小黑 因为一开始我们net里面 放的是字串小黑嘛 但是呢 下面的这三行就变成 小黄今年87岁 小黄身高187 小黄讨厌自己87岁 为什么呢 因为我们在这边 把net里面的资料 把它改成字串小黄了 所以下面写出来的 就会都变成小黄 那这边我把 这边的字串里面的 console里面的字体 调大一点 不然这样看起来 好像有一点小 我们可以在这里 按右键内容 然后呢 字型 我把它改大一点 改成24好了 按下确定 那我们的字串 它也会跟着变大 我也把它调小一点 版面配置 这边有四窗的宽度跟高度 我让它一半就好了 60跟15 好这样子 好多了 OK 所以呢 就会变成一开始 是有一个人叫小黑 后面就会变成小黄小黄 因为呢 我们已经把net里面的资料 改成字串小黄了 当然如果我们想要再改 也是可以 我在这边 再把net里面的 这个字串小黄 再把它改成小灰 然后呢 在这里再改 再把它改成 小绿 好那我们执行 可以看到 一开始 net里面放的是字串小黑 所以有一个人叫小黑 接着我们把net里面 改成字串小黄 它这里就变小黄 然后再改成小灰 就变成小灰 再改成小绿 就变成小绿 OK 所以我们可以把 变数里面的值做更改 但是 我们不能把它的资料形态改变 这里我们指定 net它的资料形态是字串 我们下面做更改的时候 它就只能是字串 假设我这边 把net里面的资料 我把它改成 数字 把它改成整数的30 那我们再执行一次 就会出错了 我们不行把资料形态 做改变 OK 好那这就是我们 这一堂课的内容 跟大家介绍了 五种常见的资料形态 分别是字串 字元 整数 浮点数 以及布林值 那我们也介绍了变数 它是一个容器 可以让我们去存放 各式各样的资料 以让我们更好的去管理 这些资料 那变数里面的资料 也可以做更改 只是呢 不能改变它的资料形态 OK 希望大家都有了解 那我们就下一堂课见啦 掰掰 哈啰大家好 我是小白 接下来要跟大家介绍的是 字串的一些常见用法 这里我写了一个 Hello Mr. White的字串 一样把它写到console里面 我们执行 欸就得到了一行 Hello Mr. White 那如果我们今天想要的 不是这么简单的一行 Hello Mr. White 我们想要它先写Hello 接着换行再写Mr. White 可以怎么样达到这个要求呢 欸这时候你就会想啦 我们是不是 写两次console.wildline的指令 第一次写的是Hello这个字串 第二次写的是Mr. White这个字串 就可以达到我们的要求了嘛 执行 果然就得到了我们想要的效果 先写Hello换行再写Mr. White 但是如果我们想要 只用一个console.wildline的指令 就达到刚刚的效果 要怎么做呢 我们可以这样子写 Hello Mr. White 那我们在Hello的后面 加上反节线N 这个反节线N在字串里面 就是换行的意思 所以我们再执行一次 果然得到了一样的效果 Hello换行Mr. White 为什么会换行呢 就是因为这个反节线N 在字串里面就是换行的意思 OK 好再来 假设我们想要在一个字串里面 表达双引号 假设我想要console.wildline 我想要console里面写出来的东西 是这样子 Hello 双引号Mr. White 我想要他写出来的东西 是这个样子 那最直觉的想法 我们就会在Hello的后面 再加上一个双引号码 但是当我们加上这个双引号的时候 会发现这一串就变得怪怪的了 没关系我们一样执行喔 果然他就发生错误了 为什么会发生错误呢 原因是因为我们说字串 他是用一对双引号 里面包着一段文字嘛 所以当我们在Hello的后面 写上这个双引号的时候 他就跟前面的这个双引号 形成了一对双引号 那这个Hello呢 就会变成一个Hello的字串 至于后面的这一段呢 就会变成一个意义不明的东西 所以就发生错误了 那要怎么样解决这样子的问题呢 非常的简单 我们就在这个双引号前面 再加上一个反斜线 这样子写就相当于告诉C-Sharp说 在反斜线后面的这个双引号 他是字串的一部分喔 他是字串里面文字的一部分 你不要搞混了喔 所以我们再执行 就会得到我们想要的效果 Hello双引号Mr.White OK 好 接下来呢 要介绍的是我们上一堂课 已经有用到的这个字串相加 假设这边有一个Hello的字串 跟一个Mr.White的字串 他们两个做相加 那就是这两个字串 会连接在一起的意思 所以我们执行 果然他就连接在一起了 变成Hello Mr.White 所以两个字串做相加 就是把这两个字串连接在一起 就相当于是这个样子 OK 那我们也可以 把他替换成变数 我们把这个Hello 把他放到一个变数里面 我这里创建一个变数 叫他Phrase 然后里面放的是Hello这个字串 在这里我就可以用变数 来替代他Phrase 好我们执行 一样得到同样的结果 Hello Mr.White OK 好这里我把Phrase 这个变数改成Hello Mr.White 接下来呢 如果我们想要知道 一个字串他的长度是多少 我们可以在字串的后面 加上点Length Length 这样子写 他就会把前面这个字串的长度 回传给我们 所以我们执行一次看看 可以发现他写出了14 也就是表示他回传14给我们 我们来算一下 是不是真的是14 1 2 3 4 5 6 7 8 9 10 11 12 13 14 果然是14没有错喔 这个空白也要去做计算 那这边我们也可以这样子写喔 如果不是变数的话 我们也可以直接这样子写 都是一样的 再执行一次 果然还是一样得到14 所以如果我们想要知道 一个字串他的长度是多少 可以在字串的后面 加上点Length 就会回传给我们 这个字串他的长度是多少 好 接下来我们要介绍的是 字串的一些方法 所谓的方法就是 大家先把他想像成是 字串特有的一些功能就好了 之后还会有一个影片 在专门介绍什么是方法 好 第一个要介绍的是 True Upper 那我们就在字串的后面 加上点 然后True Upper UPPER 然后一对小括号 这个True Upper方法 他会帮我们把前面的这个字串 里面的所有字母 都转换成大写的 再回传给我们 好直接执行看看 可以看到 Hello Mr. White 他的字母就全部都变成大写的了 那有转换成 有把所有字母都转换成大写的方法 当然反过来 有把所有字母都转换成小写的方法 如果我们想要把一个字串里面的字母 全部都转换成小写的 可以用True Lower这个方法 一样我们就在字串后面加上点 然后写上True Lower 接着一对小括号 好我们执行 果然Hello Mr. White 字母就全部都变成小写的了 OK 好再来 如果我们想要判断一个字串 是否含有特定的子字串 那我们可以用Contents这个方法 一样就是在字串后面加上一个点 然后写上Contents 接着一对小括号 这次比较不一样的是 我们必须要在这对小括号里面 写上一个字串 那这个字串 就是我们要拿来判断的字串 假设我写的是Hello 这样子写的意思 就是我们想要判断 Face这个字串里面 是否含有Hello这个子字串 那Face这个字串里面 是Hello Mr. White吗 显然它是含有Hello这个子字串的 所以我们执行看看 可以看到它就回传True给我们 True的意思就是 是的没有错 它是含有Hello这个子字串的 如果这里我是随便乱写 我写一个QQ 再执行 它就会回传False给我们 False的意思就是否 并没有含有这个子字串 OK 再来呢 如果我们想要知道 一个字串里面 特定位置的值是什么 可以在这个字串后面 加上一对中括号 那这对中括号里面 要写上一个数字 假设我写的是1 那这样子写的意思 就是我们想要知道 Face这个字串里面的 第一位它的值是什么 那第一位是H嘛 所以我们的预期 是它要回传H给我们 好那我们执行看看 发现奇怪 它回传的是1耶 它回传给我们的是1 1不是第二位吗 为什么它会回传1给我们呢 原因是因为 在C Sharp的世界里面 所有的数字 都是从0开始算的 所以这个H 它其实不是第一位 它是第零位 那1的话就是第一位 第二位第三第四第五第六 第七第八以此类推喔 所以今天如果我们想要知道的是 把它注解一下 如果我们想要知道的是H这个值 那我们要写的是第零位 因为H它是在第零位 好执行 果然它就回传H给我们 如果我想要知道的是 第六位好了 那我就写6 再执行 就得到了M OK 所以注意喔 在C Sharp的世界里面 所有的数字 都是从0开始算的 好再来 刚刚我们是用位子去找值 相反过来 我们也可以用值去找位子 如果我们想要用值去找位子 可以用indexOf这个方法 一样就在字串后面 加上点indexOf 然后加上一对小括号 在这对小括号里面 我们要写上 想要找的那个值是什么 假设我这边写的是字源H 好那直接执行看看 它就会回传0给我们 为什么会回传0呢 因为字源H 它在Phase这个字串里面 就在第零位嘛 H在这里第零位 所以它就回传0给我们 如果我写的是M的话 它就会回传6给我们 因为M在第六位 好那如果我写的是L呢 它就会回传2给我们 但是可以看到这边L有两个 分别是在第二位跟第三位 如果我们要找的东西 它有重复的话 它就会回传最先找到的 也就是前面的这个 比较前面的这个位子给我们 OK 比较前面的是2嘛 所以就回传2给我们 好那这边我们除了 可以找字源以外 也可以找字串喔 假设我写的是一个字串 H 好那我们直接执行 发现它回传9给我们 为什么是9呢 因为这个字串它在这里嘛 H 指字串H在这里 那我们写H的话 它就会回传这个字串 它的开头的位子 开头的位子是W嘛 W是在第九位 OK 所以就回传9给我们 如果我乱写的话 我随便乱写一个QQ 再执行 它就会回传-1给我们 当我们要找的东西 它在这个字串里面找不到的话 它就会回传-1给我们 好 OK 再来最后一个 最后一个要介绍的方法 是substring 一样我们就在字串后面 写上点substring 然后一对小括号 我们可以在这对小括号里面 写上一个数字 那假设我写的是2 这样子写的话 它就会帮我们把 phrase这个字串 从第二位开始做切割 在第二位以前的东西 就全部都不要了 我们直接执行一次看看就知道了 可以发现它回传给我们的是 LLO Mr.White 为什么是LLO Mr.White呢 因为substring这个方法 我们在里面写了一个数字 这里写的是2 它就会从第二位做切割 那在第二位之前的东西 就都不要了 所以这个He就被删掉了 就只剩下LLO Mr.White 如果我这边写的是6的话 再执行一次 它就只会剩下Mr.White 因为从第六位之前的东西 就都不要了 好那这个substring方法 我们也可以写两个数字 假设我这边写6 然后第二个数字 我们用逗点隔开 再写一个3 那这样子的意思就是说 我们从第六位做切割 然后往后我们只要三位就好了 也就是6、7、8 好那再执行一次 就得到了6、7、8 也就是这个Mr. OK 那如果我这边写的是5的话 它就会往后取五位 从第六位开始 6、7、8、9、10 就是M到H 好再执行一次 OK 就得到了这个Mr.WH 好那这个就是我们今天 要介绍的最后一个方法 叫做substring 这边提醒一下大家 我们介绍这些方法 并不是要你全部把它背起来 只是要你有一个印象 这样之后你在写程式的时候 如果需要用到类似的功能 你就会想到说 是不是有这么样的一个方法 可以做使用 那你再去找就可以了 好那这一堂课 就差不多到这边了 跟大家介绍了一些 字串常见的用法 那我们就下一堂课见啦 拜拜 哈啰大家好我是小白 接下来要跟大家介绍的是 数字的一些常见用法 这边的数字指的是 我们之前介绍的资料型态 整数跟浮点数 OK 如果我们想要在C-Sharp里面 做数字的运算 非常的简单 假设我们想要做的是5加2 那我们就直接写5加2 这样就可以了 执行 就得到7 如果我们想要做的是减法 一样就直接写5减2 得到3 想要做的是乘法 我们可以用这个米字号 这个星号来表示乘 5乘2等于10 那如果我们想要做的是除法 可以用这个斜线 5除2 得到6 那如果我们想要做的是 得到2 这个时候你可能会觉得奇怪 明明5除2 答案就是2.5嘛 为什么它回传给我们的值是2呢 原因是因为 我们现在是用整数5 跟整数2去做运算 当我们的运算是 整数跟整数的运算的时候 它回传的结果 就会是一个整数 所以虽然5除2 答案是2.5 但是因为它是整数的运算 所以回传给我们的值 就会省略掉小数点的部分 只回传整数的部分 也就是2给我们 那如果我们想要让它 这个计算出来的结果 是2.5的话 我们可以怎么做呢 我们可以把其中一边的整数 改成伏点数 这样子它就不是 整数跟整数的运算了 它是整数跟伏点数的运算 那只要是整数跟伏点数的运算 它回传的结果 就会是一个伏点数 所以我们只要把其中一边 把它改成有小数点的数 我把这个2改成2.0 再执行一次 它回传的结果 就会是一个伏点数 也就是有小数点的数 就得到了2.5 当然如果你是想要把这个5 改成5.0 改成5.0 然后去除以2 也是可以的 只要其中一边是伏点数 也就是有小数点的数 它计算出来的结果 就会是伏点数 好,那如果我们想要做的是 连续运算也可以 假设5加2 然后再来一个乘3 好,我们执行 会得到11 为什么是得到11呢 因为在C-Sharp里面 也是有先乘除后加减的 这个规则 所以5加2乘3 它会先做2乘3的部分 得到6 再去做5加6 就得到11 OK 如果我们想要5加2先做的话 也可以把它 用小括号包起来 这样子 它就会先做这个 小括号包起来的运算 好,执行 就得到它先做5加2等于7 再去乘以3等于21 好,那这边我们也可以 把数字放到变数里面去 我这边写一个int none等于3 然后把这边改成none 不要忘记分号 再执行 一样得到21 好 那接下来我们来介绍一些 常用的数学方法 第一个呢 是绝对值 如果我们想要做绝对值的话 可以这样子写 system.max.abs 然后一对小括号 那我们就可以在这对小括号里面 写上我们想要做绝对值的数字 假设是-10 那我们就在小括号里面写-10 这样子的话 它就会帮我们把-10做绝对值 再回传给我们 执行 就得到10 -10的绝对值是10嘛 那如果是10的绝对值呢 还是10 OK 再来如果我们想要做次方的话 可以写system.max.pow 一样一对小括号 那我们需要在这个小括号里面 写上两个数字 假设我写的是2.3 那这样子的意思就是做2的三次方 那2的三次方答案是8嘛 执行 就得到8 那如果是这个4的三次方呢 4的三次方是64 执行 就得到了64 OK 再来 接下来 我们这边也可以写system.max.max 那我们就可以在小括号里面 写上两个数字 假设我写的是2跟100 那它会帮我们把这两个数字去做比较 然后回传比较大的那个数字给我们 执行 2跟100是100比较大嘛 所以它就回传100给我们 那如果我这边改成101跟100的话 它就回传101给我们 因为101比较大嘛 那有max的话 反过来当然就有min min的话就是回传这两个数字 比较小的那个给我们 执行 就得到100 因为101跟100是100比较小嘛 那这边如果我把101改成2的话 再执行 就会得到2 因为2比较小 好 如果我们想要做数字的四舍五入 可以写system.max.round 然后呢 在这个小括号里面写上 你要做四舍五入的那个数字 假设我这边写的是3.4 好执行 3.4 四舍五入就是3嘛 那如果这边写的是3.6的话 就会得到4 OK 3.6的四舍五入是4嘛 没有错 好那我们这堂课就差不多到这边了 跟大家介绍了一些数字常见的用法 那我们就下一堂课见啦 掰掰 哈啰大家好我是小白 接下来要跟大家介绍的是 如何取得用户的输入 我们要取得用户的输入 才可以跟他做互动嘛 所以如果我们想要取得用户的输入 可以这样子写 system 注意一下这边 其实当我打下s的时候 旁边就跳出了很多的提示 我们可以按上下键做选择 那我们要的是system嘛 他就在这边 直接按下enter 他就会自动帮我们打上来了 点console 一样直接选择旁边的提示 点readline 一样旁边有提示就直接选择 这样比较快 OK 所以我们可以利用旁边的提示 加快我们打指令的速度 好这个console.readline呢 就是可以帮我们读取用户的输入 执行 可以看到他现在卡在这边 卡在这边并不是当机喔 他是在等待用户做输入 我可以在这边 假设输入个123 然后按下enter 程式就结束了 为什么程式就结束了呢 因为我们现在 只有写一行console.readline嘛 下面就没有后续的动作了 好那这边我们也可以提示用户 他要输入的是什么东西 所以我来一个system.console.readline 假设我们提示他 输入他的名字好了 请输入您的名字 然后一个冒号 OK 那再执行一次 可以看到他就先跟我们说 请输入你的名字 然后我就可以在这边输入小白 好那这边可以看到 他打了请输入你的名字之后 有做换行的动作嘛 如果我们不想要他换行的话 可以写write console.write 不写writeline writeline他会自动帮我们做换行 再来一次 这个时候就没有换行了嘛 我们可以在这里打小白 好那这边当我们打下小白 按下enter的时候 他就会把小白这两个字回传给我们 什么是回传呢 回传就是把原先的呼叫覆盖过去 那原先的呼叫就是这个console.readline 覆盖过去就会变这样 小白 OK 所以呢我们可以把用户回传给我们的值 也就是用户输入的值存放起来 然后把他存到一个变数里面 string 我把他叫做net 等于console.readline 所以呢再执行一次 他说请输入你的名字 当我输入小白按下enter的时候 他就会把小白这个字串回传给我们 那回传的意思就是覆盖掉原先的呼叫 也就是这个console.readline指令 他就会变这样 小白 OK就会变成这样子 那 变成这样子之后 我们就可以接着跟用户做互动了嘛 因为我们已经把用户的名字存起来了 在下面呢 我就可以再写一行 system.console.readline 你好啊 然后加上他输入的名字 好我们执行 请输入你的名字 小白 当我们按下enter之后 他就跟我们做互动了 你好啊 小白 当然如果我们想要取得用户的多个输入 也可以 假设我们还想要得到用户的年纪好了 那我这边就再多一个提示 请输入您的年纪 那这个console.readline也要再写一次 这个变数我把它叫做age 年纪 下面的互动呢 我们就可以变成你好啊 加上他的名字 再加上 你今年 然后加上他的年纪 age 再加上岁 好那我们执行 他先跟我们说 请输入您的名字 我输入小白 接着他又叫我们输入您的年纪 那我输入一个80 他就跟我们做互动了 你好啊小白 你今年80岁 OK 所以我们可以这样子来取得用户的多个输入 好那这堂课的内容就差不多到这边了 跟大家介绍了怎么样取得用户的输入 还有取得用户的多个输入 哈啰大家好 我是小白 接下来要跟大家介绍的是怎么样去建立一个基本的计算机 那我们要建立的这个计算机非常的阳春 他只有相加的功能 我们希望他可以取得用户输入的两个数字 然后我们把它做相加再回传给用户 OK 上一堂课我们已经学会怎么样取得用户的输入了嘛 所以呢我们要取得用户输入的两个数字 我们把上一堂课的内容改一下 这边写请输入第一个数 然后呢变数名字也改一下 把它改成None OK 那这样子我们就可以取得用户输入的第一个数了嘛 接着呢第二个提示 我们写请输入第二个数 那变数名字我一样改一下 改成None2 好那下面呢 我们就是要把这两个数字的相加回传给用户嘛 所以我们写None1加None2 OK 那我们直接执行看看 好 他说请输入第一个数 假设我输入的是3 请输入第二个数 假设我输入的是2 会发现奇怪 3加2不是等于5吗 为什么他回传32给我们 原因是这样子的喔 因为我们现在的这个None1跟None2 它都是字串的资料型态 那两个字串做相加 是把两个字串连接在一起的意思 所以呢这个32并不是数字的32 是字串3跟字串2连接在一起 那这个时候我们要怎么解决这个问题呢 你就会想啊 是不是我们把这个String改成Int 把它改成整数的资料型态就可以了呢 但是当我们改下去之后 就发现怪怪的了 它下面这个红色的波浪 就代表我们的程式码有问题 那在这边有一个XX的地方我们点下去 它会告诉我们问题在哪里 它就说啦 没有办法将类型String改成Int 因为呢预设我们这边的ConsoleReaderLine 取得用户的输入 它会预设把它当成字串的资料型态 也就是当我们输入3的时候 它回传给我们的是一个字串3 像是这个样子 并不是整数3 那当它回传给我们的是一个字串3 但是我们却在前面指定资料型态是Int 是整数的时候 就会发生这个错误 要怎么样解决这个问题呢 我们可以把它回传给我们的字串 再转换成整数 那要把字串转换成整数 可以这样子写 System.convert.toInt32 然后一堆小括号 在小括号里面写上 我们想要转换成整数的那个字串 所以这样子写 它就会帮我们把字串3转换成整数3 再回传给我们 就会变成这个样子 好那这样就没有问题了嘛 那我们直接把这个ConsoleReaderLine 把它替换过来 下面也是一样 那我们直接试试看 请输入第一个数 输入3 第二个数输入2 欸3加2等于5就没有错了嘛 好我再解释一次给大家听 当我们输入3的时候 它会回传字串3给我们嘛 预设是字串 所以它会替换掉这边的呼叫 也就是ConsoleReaderLine 变成一个字串3 那这个时候我们再用toInt32这个方法 把它转换成整数 那字串3就会变成整数3 OK 下面也是一样 第二个数我们输入的是2 它预设是字串2 回传回来 然后我们再把它转换成整数 就会变成这样 所以3加2就得到5 没有错 OK 不过呢我们这样子写还有另外一个问题 来我们来看看喔 请输入第一个数 我输入3 请输入第二个数 欸这个时候如果我输入的是一个浮点数 也就是有小数点的数 假设我输入2.2 欸可以看到它就发生错误了 好我们的这个Console现在是已经当掉了喔 我直接把它关闭 那为什么会发生这样子的错误呢 原因是因为我们输入的是一个浮点数 输入的是浮点数 就没有办法把它转换成整数 那我们想要做这种有小数点的运算 就要把它转换成浮点数 转换成浮点数 我们这边可以写2DOUBLE 前面的资料型态也要改掉 改成DOUBLE 好上面的也是一样 DOUBLE 跟2DOUBLE 好那我们直接试试看 第一个数输入3 第二个数2.2 欸这次就没有问题了 3加2.2等于5.2嘛 OK 再来试一次 第一个数我输入2.6 第二个数输入6.3 欸就得到了8.9 2.6加6.3等于8.9 没有错 OK 所以呢如果我们想要做这种有小数点的运算 就要把它转换成浮点数 如果我们要做的是单纯整数的运算 就可以直接把它转换成整数 OK那这个就是我们这堂课的内容 跟大家介绍了怎么样去做一个基本的计算机 好那我们就下一堂课见啦 掰掰 哈啰大家好我是小白 接下来跟大家介绍的是array array把它翻成中文是阵列 这个阵列大家可以把它想像成是一个大型的容器 我们可以在里面存放多个资料 那什么时候会用到阵列呢 这里我举一个例子 假设今天我是一个学校的老师 我想要记录每一位学生他的成绩 先假设班级里面只有五位学生 我是不是就要命名五个变数 像是这个样子 然后再各自把五位学生的成绩放到变数里面 好下面我把五位学生的成绩写出来 OK这样就可以得到了五位学生的成绩 但是如果今天我班级里面的学生是十个 难道我就要命名十个变数吗 今天我班级里面的学生是一百个呢 难道我要命名一百个变数吗 是不是想到就觉得很累 那这个时候就是阵列可以派上用场的时候了 我们可以创建一个阵列 然后在里面存放多个资料 创建阵列的方法其实跟创建变数差不多 首先我们一样要先指定这个阵列里面存放的资料 它的资料型态是哪一种 现在我们要放的资料都是整数码 都是这个int 所以我们要先写int 接着一对中括号 然后一样我们要帮这个阵列取一个名称 这边我叫它scores 然后等于 在等于的右边就要写上 我们要存到这个阵列里面的资料 它的写法是一对大括号 然后在大括号里面写上资料 这边分别是50 60 70 30跟20 所以我们就把它写进来50 中间用逗号格开 60 70 30 20 最后不要忘记加上一个分号 OK这样子呢 我们就成成功的创建了一个阵列 这个阵列里面存放的资料 它的资料型态都是整数 那里面存放的呢 分别是50 60 70 30跟20 好那我们就不需要像下面这样子 创建五个变数了 就这样一行就可以搞定了 好那我把它删掉 接下来如果我们想要取得 这个阵列里面的值 要怎么取得呢 我们可以这样子写 先写这个阵列的名称scores 接着一对中括号 然后在中括号里面写上 我们要取得的那个值 它是第几位 假设我要取得的是50分 这位学生的成绩 那他是第一位嘛 所以这边我们写1吗 诶不要忘记啰 之前说过在C Sharp的世界里面 所有的数字都是从0开始算的 所以如果我们想要取得50 这个学生的成绩 我们要在中括号里面写0 好这边我再写一下好了 50的话就是第0位 60是第一位 第二位 第三位 第四位喔 OK 所以下面的话 如果要取得第二位学生的成绩 我们就要写这个scores 然后中括号里面写1 下面就以此类推喔 4 OK那我们执行 诶就会一样得到 50 60 70 30跟20 这样子就方便了许多嘛 我们不需要创建这么多个变数 那今天如果有更多的学生 我就在后面补上来就好了 我再补一个第6位学生 假设他是90分 那我们就直接补上来就可以了 好 接下来 如果我们想要改变一个阵列里面的值 假设今天50分 这位同学其实他的分数是60 只是我不小心打错了 除了在这边直接把它改成60以外 我们也可以这样子写 scores中括号 然后里面写0等于60 这样子写 他就会把scores这个阵列的第0位 他的值改成60 好我们执行 可以看到这个第0位 他就变成60了 从50变成60 当然如果你想要改的是其他位 假设把第1位改成90 那我们执行 可以看到第1位 他就变成90了 从60变成90 好 再来 其实阵列的创建方法还有另外一种 因为有时候我们在创建阵列的当下 还不知道这个阵列里面要存放的值是什么 那这个时候我们可以这样子写 假设有一个阵列里面放的是电话号码好了 然后就写string一对中括号 这边我把它叫做phones 等于 注意等于的右边写法就不一样啰 我们写new string一对中括号 在这对中括号里面要写上一个数字 这个数字代表这个阵列里面可以放几个值 假设我写的是10 就是代表这个阵列里面可以放10个值 OK 所以这样子写的意思呢 就是我创建了一个空的阵列 他叫做phones 那这个阵列里面放的是 自串这个资料型态 而且他可以放10个自串 OK 好那我们确定了这个阵列里面要放的电话号码是什么之后呢 我们就可以把它写上来 phones 假设 第一个电话号码是0123456789 那我们就把它补进来 那第二个 也就是第一位 是这个 08888888 这样也可以 好那下面我们就把 这个phones写出来看看 phones0跟phones1 好那我们执行 欸就得到了0123456789跟0888888 OK 所以呢我们创建阵列的方式有两种 第一种是直接用一对大括号 然后把值都写进去 第二种是我们还不确定里面的值是什么的时候 可以先这样子创建一个空的阵列 然后指定这个阵列里面可以放几个值 好这堂课就差不多到这边了 跟大家介绍了array阵列 它可以在里面存放多个值 这样我们就不用创建这么多个变数啦 哈啰大家好我是小白 接下来跟大家介绍的是if判断句 if判断句可以让我们在不同的情况下 执行不同的程式码 那if判断句在我们的日常生活中也是蛮常见的 比如说我会说如果我肚子饿 我就去吃饭 要把这样子的语句转换成C Sharp的程式码 可以这样子写 if 接着一对小括号 在小括号里面要写上我们想要判断的东西 现在我想要判断的东西是我肚子饿 所以我把它写进来我肚子饿 后面接着一对大括号 大括号里面要写上 如果条件成立了之后要做的事情 也就是如果我真的肚子饿的话要做的事情 要做的事情是我就去吃饭嘛 这边我把它写到Console里面 所以我们写System.Console.WriteLine 我就去吃饭 OK 不过条件判断的地方我们不能直接这样子写嘛 不能直接写我肚子饿 这里我用一个变数来判断我是否有肚子饿 那要判断这种是否的我们可以用不灵值 我把它命名叫做Hungry 假设我真的肚子饿 所以我里面写True 里面放的是一个True 好那这个时候呢 我们就可以在这个if的小括号里面写上Hungry 那直接执行看看 可以看到它就写出了我就去吃饭 为什么呢 因为现在我们条件判断的东西是有没有肚子饿 我用一个Hungry的变数来判断有没有肚子饿 里面写的是True表示真的有肚子饿 那条件成立了之后呢 就会执行大括号里面的程式码 也就是把我就去吃饭写到Console里面 OK 所以呢只要 这个小括号里面是True 它就会执行 它就会执行这个大括号里面的程式码 反之如果是False 就不会执行 OK 所以呢如果这个时候 我把Hungry的值 改成False 我们再执行一次 可以发现就没有写出任何的东西 OK 好那这个是我们的 第一个会看到的语句 第二个会看到的语句呢 是如果今天有下雨 我就开车去上班 否则我就走路去上班 OK现在多了一个否则喔 那要怎么样把这个语句转换成C-Sharp的程式码呢 我们可以这样子写 前面一样是If 一对小括号 那现在要判断的是今天 有下雨 后面接着一对大括号 大括号里面写上 条件成立了之后要做的事情 我就开车去上班 我把它写到Council里面 我就开车去上班 OK 接下来来啰否则 否则的话 在C-Sharp里面是Else ELSE 一样接着一对大括号 大括号里面写上 条件不成立之后要做的事情 那这边要做的事情是 我就走路去上班 一样我System.Council.WriteLine 我就走路去上班 OK 一样这边我们不能直接写今天有下雨 一样用一个变数来判断今天有没有下雨 我叫它Rainy 假设今天有下雨 里面就是Chu 好If Rainy 执行 可以发现它写出了 我就开车去上班 因为现在这边的条件判断是成立的 今天有下雨 所以它就会执行这边大括号里面的程式码 里面的程式码是 我就开车去上班 不过如果这个时候 Rainy是False 也就是今天没有下雨 可以看到就变成了 我就走路去上班 所以我们可以把条件不成立的时候 要执行的程式码 写到Else的大括号里面 OK 这个是第二个例子 这里也小小的跟大家补充一下 可以看到这边我们注解了五行码 如果要做这种多行的注解 可以用另外一种写法 我们可以写 斜线、星号跟星号斜线 那在斜线、星号跟星号斜线里面的内容呢 就会被全部注解起来 就不用像这样子 写这么多个斜线 OK 好这个是小小的一个补充 多行注解的写法 再来第三个例子 第三个例子是 如果你考100分 我给你1000元 或是如果你考80分以上 我给你500元 或是如果你考60分以上 我给你100 否则你给我300 OK 要把这样子的语句 转换成C Sharp的程式码 可以这样子写F 接着一对小括号 那现在要判断的是考试的分数 有没有等于100分吗 这里我就直接用一个变数 来存放考试的分数 int score 等于假设真的考100分 好 那现在我们要判断的就是 有没有考100分吗 那要判断有没有考100分 可以这样子写 score 等于等于100 大家注意喔 不要把等于等于跟等于搞混了 当我们写等于的时候 是把右边的值 赋予给左边的这个变数 那写等于等于的时候 是在判断右边的值 有没有相等于左边的值 OK 如果这个判断是成立的 也就是这个值是相等的话 就会变成true 变成这样 反之如果不相等的话 就会变成false OK 好 接着一对大括号 里面写上条件成立之后要做的事情 我给你一千元 我把它写出来 write line 我给你 直接复制好像比较快 给你一千元 接着呢是或是如果 如果我们要写或是如果的话 可以这样子写else if 一样接着一对小括号 小括号里面写的是 接着要判断的 接着要判断的是你考80分以上 也就是score 大于等于80 那这边的判断一样喔 如果分数是有大于等于80的 就会变成true 如果没有的话 就会变成false OK 好 一样一对大括号 在大括号里面写上 条件成立之后要做的事情 这边是五百元 把它改成五百 好再来是 或是如果你考60分以上 我给你一百 一样 我们就直接复制比较快 else if 不过呢现在是 大于等于60分 我就给你一百 然后呢 否则你给我三百元 否则的话就是else 你给我三百元 你给我三百元 OK 好那我们现在直接执行看看 可以发现它写出的是 我给你一千元 为什么呢 因为现在我真的考一百分嘛 所以第一个 这个条件判断就成立了 它就直接执行了 这个大括号里面的程式码 就不会继续执行下面的程式码了 好那如果我现在考的是90分呢 再执行一次 可以发现 它就写出了 我给你五百元 为什么会写出我给你五百元呢 原因是因为 它一开始先判断 这个score有没有相等于一百 没有 那它就跳到第二个判断 else if 或是如果 它判断有没有大于等于80分 有大于等于80分 它就写出了 我给你五百元 那这边条件成立了之后 它就不会再继续判断下面的条件了 ok 再来如果是70分的话 它就写出 我给你一百元 为什么呢 因为它一开始先判断 70有没有相等于100 没有 它再进入第二个判断 70有没有大于等于80 没有 再进入第三个判断 70有没有大于等于60 有了 它就执行里面的程式码 ok 那再来如果是50分呢 就写出了 就写出了 你给我三百元 ok 为什么会写出你给我三百元呢 再顺一次 一开始先判断 50有没有相等于100 没有 再判断 50有没有大于等于80 没有 50有没有大于等于60 没有 就进入了否则 否则的话就是你给我三百元 ok 好这个是第三个例子 再来进入第四个例子 如果你考100分 且今天有下雨 我给你一千元 否则你给我一百元 ok 好一样我们写if 一对小括号 现在要判断的是考试的分数 一样我用一个int score 假设真的考100分 那这边要判断的就是score 等于等于100 那要怎么样表示且呢 在C-Sharp里面 且是&& 两个&的符号 就是且的意思 且今天有下雨 那下雨的话一样要用另外一个变数 叫它rainy 假设真的有下雨 写true 所以呢这边就是&&的rainy 接着一对大括号 我给你一千元 system.console.writeline 我给你一千元 否则的话就是else 你给我一千元 你给我一百元 好我们直接执行 可以看到它就写出了 我给你一千元 为什么会写出我给你一千元呢 因为现在判断的是 分数相等于100 且有下雨 这个且是左边跟右边的两个判断 都要等于true 它才会把这一整串变成true 反之只要左右两边有一边是false 它就会把这一整串变成false ok 现在score确实是100分 而且也是有下雨的 所以左右两边都是true 它就会把这一整串变成true 那这一整串是true 就会执行大括号里面的程式码 也就是写出我给你一千元 如果现在我考的分数是90的话 我们再执行一次 可以看到就变成了你给我一百元 因为刚刚说过了 且是左右两边的判断都要是true 它才会把这一整串变成true 可是现在score是90 所以左边的判断已经变成了false 那其中一边是false 这一整串就会变成false ok 那就进入了else 否则写出了你给我一百元 如果也没有下雨的话呢 我们再执行一次 还是一样你给我一百元 因为现在只是变成左右两边都是false 左右两边都是false 一样这一整串就会变成false 就会进入else 执行你给我一百元的这个control right line ok 好这个是第四个例子 第五个例子是 如果你考一百分或今天有下雨 我给你一千元 否则你给我一百元 好那基本上跟上面的例子 只差在且跟或而已 所以我直接把它贴上 这样比较快 且的话我们用的是两个&的符号 或的话我们是用这个两个直线 那要打出这个直线的话 我们可以按住shift加上&上面的这个反斜线 ok shift加反斜线就可以打出这个直线 ok 两个直线就是或 那这个或的话就是左边跟右边的判断 只要有一边是true 它就会把这一整串变成true 好那假设现在分数是一百分 我们执行 欸它就写出了我给你一千元 为什么呢 因为现在左边的判断是true 那刚刚说了 只要其中一边是true 这个或呢 就会把这一整串变成true ok 那如果现在我考的是90分 而且没有下雨的话 它就会写出你给我一百元 因为呢现在左边跟右边的判断都是false 那两边都是false 这一整串就会变成false 那这一整串变成false就进入了否则 写出你给我一百元 ok 好再来 最后一个例子 最后一个例子是 如果你没有考一百分 或今天没有下雨 我给你一千元 否则你给我一百元 可以看到第六个例子 跟第五个例子也是蛮像的 差别只是你考一百分 变成了你没有考一百分 今天有下雨 变成了今天没有下雨 ok 因为也是蛮像的 所以我直接贴上比较快 分数的判断 从判断是否相等于一百 变成了判断是否不等于一百 那要变成是否不等于一百的话 我们可以从等于等于变成 惊叹号等于 下雨的地方也是 从判断是否有下雨 变成了判断是否没有下雨 那我们可以在前面加上一个惊叹号 这个惊叹号就是否定的意思 所以Renny本来是判断是否有下雨 加了前面的惊叹号 就变成了判断是否没有下雨 等于等于本来是判断 是否相等于一百 变成了惊叹号等于 就是是否不等于一百 ok 好我把分数改成一百分 然后今天也有下雨 我们执行看看 发现他写出了 你给我一百元为什么呢 因为现在一百是否不等于一百 他等于一百 所以这边的判断就是false 再来Renny是true 加了前面的惊叹号 就会变成false 或的左右两边都是false 这一整串就是false 那就会到否则这边 写出了你给我一百元 如果现在我考的是九十分呢 执行 就变成了我给你一千元 为什么呢 因为九十分是否不等于一百 条件成立了 他真的不等于一百 所以这边就会变成true 或的左右两边 只要有一边是true 这一整串就会变成true 然后就会进入了 这边的大括号里面的程式码 写出了我给你一千元 OK 好那这个就是以判断句 跟大家介绍了六个例子 希望大家都有了解 OK 那我们就可以利用以判断句 在不同的情况下 执行不同的程式码 好那我们就下一堂课见啦 拜拜 好大家好我是小白 接下来跟大家介绍的是 如何制作一个进阶的计算机 还记得我们之前有做过一个 非常阳春的计算机吧 那时候的计算机只有相加的功能 那这次的进阶计算机 它除了相加以外 还可以做相减相乘跟相除 这个进阶计算机 它会取得用户的三个输入 分别是输入的两个数字 以及要做的运算 OK 那我们直接开始 首先一样要先提示用户 他要输入的是什么东西 这边会写system.console.writeline 我们用write就好了 让他不会换行 提示他请你输入第一个数 所以我们写请输入第一个数 OK 然后我们就 system.console.readline 取得用户他的输入 这次我们直接让他 可以做小数点的运算好了 所以我把他放到一个 double的变数里面 叫他num1 那不要忘记 这边console.readline 他会传给我们的是一个字串 所以我们要把他转换成 浮点数也就是double 我们写system.convert.toDouble 然后把这个readline放进来 OK 接下来呢 第二个数也是一样 我直接用复制的比较快 把他改成请输入第二个数 num1的部分改成num2 OK 如果这个进阶的计算机 我们还要取得 用户他想要做的运算码 我把他写在中间 一样我用贴的比较快 改成请输入要做的运算 然后呢这边就不用用double 不用用浮点数了 我们就用字串就可以了 string 我叫他opr 这边也不用把他转换成double 把他删掉 OK 好那下面我们就可以来 做处理了 现在已经取得了 用户输入的第一个数 还有他想要做的运算 以及第二个数 我们就可以利用 上一堂课教的if来判断 然后呢做出相对应的运算 OK 所以这边我们写if opr 这个opr 也就是用户想要做的运算 如果用户想要做的运算 等于等于字串加 也就是他输入的是加的话 我们就做加法运算 大括号里面写system .console.writeline num1加num2 然后呢或是如果 else if 用户他想要做的运算 是减法的话 好我直接用复制的比较快 我们就做减法运算 num1减num2 接着else if 如果用户想要做的是乘法 这边就写num1乘num2 再来else if 用户想要做的是除法运算 我们就num1除num2 OK 那这边注意一下 如果这个时候 用户他输入的是 加减乘除以外的运算符号 假设他随便乱输入 他输入一个这个前置号 那我们要怎么办 我们就没有办法做运算了嘛 所以这边要再写一个否则else 也就是当用户他输入的 不是加减乘除这四个符号的话 我们就写说 system.console.writeline 这个不合法的运算符号 OK 好那这样看起来就没有问题了 我们直接执行 请输入第一个数 我输入3 然后呢请输入要做的运算 加法第二个数2.5 就得到了5.5 3加2.5是5.5嘛 好再来试一次 第一个数5 要做的运算乘 第二个数2.3 诶5乘2.3 答案是11.5没有错 再试一个除法 这个6除 6除2 得到3没有错 好那如果这个时候 我输入的是5 前置号 一个意义不明的运算符号 第二个数随便输入3 诶它就会告诉我们 不合法的运算符号 OK 所以呢我们可以利用 上一堂课教的if判断 来帮助我们制作一个 进阶的计算机 希望大家都有了解 那这堂课就差不多到这边了 我们制作了一个进阶的计算机 好那就下一堂课见啦 拜拜 哈啰大家好我是小白 接下来跟大家介绍的是 化友回圈 化友回圈它可以帮助我们 重复的执行一段程式码 直到条件判断是false为止 OK 那什么时候会用到化友回圈呢 这里简单的举一个小例子 假设我们想要在console里面 写出1到5 那是不是我要写console.writeline 1 console.writeline 2 console.writeline 3 4 5 然后执行 就会得到我们想要的效果 写出了1到5 但是如果 今天我是想要写出1到10呢 难道我就console.writeline 1 然后console.writeline 2 一路console.writeline到10吗 如果今天我是想要写出1到100 难道我就console.writeline 1 一路到100吗 不太可能嘛 因为这样太累太没有效率了 所以这个时候呢 就是化友回圈可以派上用场的时候 它可以帮助我们 重复的执行一段程式码 OK 好那这边我们就可以改成这个样子写 其实化友回圈它的写法跟 if判断句是蛮像的喔 我们先写一个化友 接着一对小括号 那在小括号里面要写上 我们想要判断的东西 后面接着一对大括号 大括号里面则是写上 我们想要重复执行的程式码 好这边我先创建一个变数 叫它num 里面放的是一个数字1 一个整数1 好那在条件判断的地方 就可以这样子写 num小于等于5 只要这个条件成立 我们就会一直重复的执行 大括号里面的程式码 好那我们想要重复执行的东西是什么呢 就是让它写出这个数字码 让它写出num 一开始num是1 所以第一次进到回圈的时候 它会写出1 然后呢我们想要它进入第二次回圈的时候 写出的是2 所以在下面的地方 把num等于num加1 这样子写num就会从1变成2 然后再进入一次回圈 它就会从2变成3喔 好那 我把下面的东西删掉 再执行一次 可以看到它就写出了1到5 跟刚刚的效果是一样的 好那我来解释一下 为什么会写出1到5呢 首先我创建了一个变数num 它里面放的是整数1 接着下面写了一个化有回圈 这个化有回圈的判断是 只要num小于等于5 它就会一直重复的执行 大括号里面的程式码 现在num是1嘛 所以1有没有小于等于5 有所以这个条件是成立的 那它就会执行大括号里面的程式码 System.console.writeline.num 也就是把1写到console里面 接着num等于num加1 num等于num加1的意思 是把num的值现在是1 加了1之后再重新的放到num这个变数里面 所以现在num这个变数里面的值就变成了2 变成了2之后呢 它会再跳上来判断2有没有小于等于5 有所以还是成立 它就会继续执行大括号里面的程式码 这时候在console里面写出来的就是2 接着num等于num加1 所以num变成了3 然后再跳上来3有没有小于等于5 有成立再执行 写出3加1变成了4 再上来4有没有小于等于5 有写出4加1变成5 5有没有小于等于5 有写出5加1变成了6 6有没有小于等于5 没有这个时候条件就不成立了 所以它就不会继续执行大括号里面的程式码 所以我们执行的时候 就会写出1到5 OK希望大家都有了解 好那这个时候如果我们想要写出的是1到100 非常简单 就把这个5改成100 num小于等于100 然后执行 它就会从1写到了100 我们就不用一行一行的console write line 自己去写喔 OK那这里补充一下 如果我们想要把num的值加1 除了写num等于num加1以外 也可以写num加等于1 这样子写也是把num的值加1的意思 好我们执行 可以看到结果是一模一样的 OK那还有另外一种写法 我们也可以写num加加 num加加也是把num的值加1的意思 再执行一次 结果也是一样的 OK 好那这边其实画有回圈 它有另外一个写法喔 那另外一个写法我先改一下 假设现在num是6 然后我们是小于等于5 好这个时候执行 可以发现它没有写出任何的东西 为什么呢 因为一开始num是6嘛 它判断6有没有小于等于5 就没有了 没有小于等于5 它就不会执行大括号里面的程式码 那另外一种快有回圈的写法 是它不会先判断条件有没有成立 它会先执行了 执行完才判断 那这种快有回圈的写法是这样 先写do 一样一对大括号里面写上 我们想要重复执行的程式码 最后才把快有写在这个后面 快有写在最后面的位置 OK那我们执行一次 可以看到它写出了6 为什么呢 因为这种快有回圈的写法 是它会先执行大括号里面的程式码 再去判断条件有没有成立 所以一开始是6 它不管就先执行了大括号里面的程式码 写出来写出6 然后加加那变成了7 它才来判断7有没有小于等于5 如果有小于等于5 它才会继续执行大括号里面的程式码 OK 所以呢这个是另外一种快有回圈的写法 假设这边是1的话 我们再执行一次 一样得到了1到5 为什么呢 一开始不管这边的条件有没有成立 它会先执行大括号里面的程式码 先写出了1 然后让加加变成了2之后呢 才来判断2有没有小于等于5 有所以它继续执行 写出2让加加变成3 3有没有小于等于5 有写出3让加加变成4 4有没有小于等于5 有写出4让加加变成5 5有没有小于等于5 有写出5让加加变成6 6有没有小于等于5 没有这个时候条件不成立 它就不继续执行大括号里面的程式码 OK 所以呢快有回圈它有两种写法 一种是会先判断条件有没有成立 才执行大括号里面的程式码 另外一种是先执行了才做判断 OK 好那这个就是快有回圈 它可以帮助我们重复的执行一段程式码 直到条件判断是false为止 好那我们就下一堂课见啦 拜拜 哈啰大家好我是小白 接下来我们要来制作一个拆数字游戏 这个游戏就会用到上一堂课教的快有回圈 好那我希望这个游戏是这样子玩的 我们要先设定好一个谜底 比如说是50好了 那它可以无限次数的让玩家做猜测 如果玩家猜测20 它比谜底还小嘛 我们就要提示它说大一点 如果玩家猜测70 我们就要提示它说小一点 就这样一直让玩家猜 直到他猜中为止 那他猜中了我们就要写出 恭喜你赢啦 OK 这个就是我们的拆数字游戏 那如果大家有想法的话 可以先把影片暂停啰 先试着自己做做看 看有没有办法把这个游戏给制作出来 好我就直接来写了 首先呢 先来设定谜底 我叫它SecretNum 把谜底设定成66好了 接着呢还要创建一个变数 这个变数是拿来存放玩家猜测的值 我叫它Guess 因为一开始玩家还没有猜测嘛 所以我们不知道Guess里面要放什么 那在创建变数的时候 如果还不知道里面要放什么值 我们可以这样子写 OK 先不给它值 好那接着呢 就可以在下面写会有回圈了 这边我用Do会有回圈 也就是会先执行再判断条件是否成立 那我们要执行的事情呢 就是先让玩家输入他的猜测 所以先提示他 Console.WriteLine 先提示他 请输入猜测 这边用 不要用WriteLine 用Write就好了 接着呢就是要取得他的输入 然后把他放到Guess里面 System.Console.ReadLine 不过呢 这个回传过来的是一个自串 所以要把他转换成整数 Convert to Int32 OK 这样子呢就得到了玩家的输入 玩家的猜测 得到了玩家猜测之后呢 我们就要来判断 判断他猜测的值 是不是大于我们的谜底 如果大于我们的谜底的话 就要给他提示 System.Console.WriteLine 提示他说小一点 好再来 或是如果Else If 他猜测的值小于谜底的话 一样要给他提示 提示他说大一点 再来Else否则 他如果猜测的值没有大于我们的谜底 也没有小于我们的谜底 就表示他猜对了嘛 所以呢这个时候就要恭喜他 你赢啦你猜对了 这边写说恭喜你 答对了 惊叹号OK 好那这边下面不要忘记要把 要判断的条件写上 我们的条件是什么呢 条件就是当他没有猜中的时候 也就是谜底不等于 Secret None不等于Guess的时候 OK 他没有猜中就让他一直执行 大括号里面的程式码 也就是让他一直猜测 好那我们直接执行看看 请输入猜测 这边我输入一个10 他就跟我说大一点 因为我们的谜底是66嘛 那这时候如果我输入个100呢 他就说小一点 那我输入60 大一点70 小一点所以现在范围是60到70了 65 大一点这个时候我输入66 他就说恭喜你答对了 OK 希望大家都有把这个游戏制作出来 这边你的写法 不一定要跟我完全一模一样 只要你的程式执行起来没有问题 没有出错就可以了 好接着呢 我们要把这个游戏做一个进阶 因为现在他可以无限次数的 让玩家做猜测 这样太简单了 太没有挑战性了 所以呢我们要让他多一个限制 限制说玩家最多只能猜三次 如果超过三次的话就要算他输 我们就要在console里面写出 抱歉你输了 好听到这边 大家一样可以先把影片暂停了 先试着自己做做看 看有没有办法把这个限制给加上去 这里我就直接来写了 首先呢要先新增几个变数 第一个变数 他是拿来存放 玩家现在猜到第几次 我叫他guess count 一开始还没猜 所以呢写0 第二个变数是拿来存放 最多能猜几次 我叫他guess limit 刚刚的设定是说三次 然后呢还有一个不灵值 他是拿来判断玩家有没有赢 所以我叫他win 一开始先写false 没有赢 好 那我们在玩家做猜测之后呢 就要把他猜测的次数加1 也就是把guess count把它加加 好那如果玩家赢的话 他答对的话 我们要把win 把他变成true 好那在这个 会有判断的地方 也不是说他没有猜中 就让他一直无限的猜 我们现在多了一个条件 且他猜的次数不能超过三次吗 也就是guess count 要小于guess limit 这个时候如果他跳出回圈的话 有两个状况 第一个状况就是他猜对了 第二个状况就是 他猜的次数超过了三次 所以这个时候我们在回圈外面 要做一个判断 判断他是不是赢了 如果他不是赢的话 也就是惊叹号win 我们要写出 我们要写出抱歉你输了嘛 所以在这边写说 seston.console.writeline 抱歉 你 输了 ok 好我们直接执行看看 请输入猜测 谜底一样是66 我先猜100 小一点 我猜50 大一点 猜80 欸80他跟我说小一点 但是呢 因为我们已经猜了三次 而且没有答对答案 他就说抱歉你输了 ok 再玩一次 请输入猜测 100 小一点 50 大一点 这个时候我猜66 欸他就说恭喜你答对了 ok 如果你觉得限制三次太难的话 也可以把它加大 把它变成五次啊 十次啊 等等的 就看你怎么样去设定 好希望大家都有把这个限制给制作出来 这边一样 你可以有你自己的写法 只要程式执行起来 没有问题 没有出错 就可以了 好这堂课就差不多到这边了 跟大家介绍了怎么样制作一个猜数字游戏 那我们就下一堂课见啦 掰掰 哈啰大家好 我是小白 接下来跟大家介绍的是for回圈 for回圈 既然它是回圈 就意味着 它也是帮我们重复的执行一段程式码 直到条件判断是false为值 那其实基本上 for回圈跟while回圈是同一种东西 只是呢 for回圈它写得比较简洁一点而已 好可以看到这边我写了一个while回圈 我们直接执行 它会帮我们从1写到5 如果我们想要用一个for回圈 把这一整串替换掉的话 我们可以这样子写 先写一个for 先写一个for 接着一对小括号 在小括号里面我们要写上三个东西 第一个东西就是变数的初始值 以上面这一串来说的话 就是这个int i等于1 我们宣告了一个变数i 它的初始值是1 好把它复制过来 直接贴进来 第二个要写上的东西是 这一个回圈 它继续执行的条件 它继续执行的条件 以上面这个回圈来说 就是i要小于等于5嘛 所以一样直接贴过来 不要忘记后面要加上分号 第三个要写的东西是 每一次执行完这个回圈之后 要做的事情 那以上面这一段来说的话 就是i++ 它每执行完一次 要把i的值加1嘛 所以呢在这边也写上i++ 不过注意喔 这个i++后面就不用加上分号了 后面加上一对大括号 一样在大括号里面写上 我们想要重复执行的程式码 那就是这一段 这个system.console.writeline i 贴进来 好那这个时候呢 我们就可以把上面的这一段删掉了 我们直接执行 可以看到一样写出了1到5 所以呢 我们这样子写 跟 这样子写是一模一样的 它们做的事情是一模一样的 我帮大家顺一次逻辑 我再执行一次 为什么会写出1到5呢 因为呢这边我宣告了一个变数i 它的初始值是1 那这个回圈继续的条件是 只要i小于等于5 它就会继续 一开始i的值是1嘛 所以1有小于等于5 它就执行大括号里面的程式码 在console里面写出i 现在的i是1 所以在console里面写出1 每执行完一次回圈 要做的事情写在第三个位置 那这边写的是i++ 所以i的值呢 现在会加1变成2 变成2之后再来判断 2有没有小于等于5 有 执行里面的程式码 在console里面写出2 然后i++ 所以现在i变成3 3有没有小于等于5 有所以写出3 i++变成4 4有没有小于等于5 有写出4++变成5 5有没有小于等于5 有写出5++变成6 6有没有小于等于5 没有所以这个时候就会跳出回圈 ok 当然如果你这边 不想要写小于等于5 你想要写小于等于10 也可以 执行 就会变成从1写到10 你的初始值不想要是1 你想要从3开始也可以 它就会从3写到10 你每一次 回圈执行完要做的动作 不是i++ 你想要一次把i的值加2 也可以 就写i++等于2 好执行 可以看到 这边就不是3写到10了 它每一次加的值是2 所以3 5 7 9 ok 好那这个 复回圈它还有一个很好的应用 就是我们可以把一个阵列里面的值 全部读出来 全部写出来 比如说 这边我有一个阵列 它叫做nums 里面放了很多的数字 很多的整数 我随便写 好 我们想要取得阵列里面的值 是这样取吗 比如说我想要取得15的话 我就写nums 然后一对中括号 里面写0 代表我想要取得nums 这个阵列里面的第0位 也就是这个15 那想要取得1561的话 就是写1嘛 以此类推 0 1 2 3 4 5 6 好那如果我们想要用复回圈来 取得里面的所有值 取得这个nums里面的所有值 可以这样子写 我们从i等于0开始 然后呢 这边的条件改成 nums.length 也就是这个阵列它的长度 那不写小于等于 我们写小于 一样后面写i++ 这边system.console.writeLine 我们就可以写nums 中括号 i 好我们直接执行一次 可以看到 它就把这个阵列里面的值 全部都写出来了 15 1561 62 然后一路到626 为什么可以把这个阵列里面的 所有值写出来呢 来我们来顺一次 这边的初始值i 我写的是0 那回圈继续的条件是 i小于nums.length nums.length也就是 nums这个阵列它的长度 阵列的长度就是 阵列有几个值 这边有1 2 3 4 5 6 7 8 7个值 所以相当于写的是 i小于7 初始值是0 继续的条件是i小于7 然后每执行完一次回圈 做的动作是把i的值加1 所以呢大括号里面 我们会跑过的程式码 就是nums从中括号0 一路跑到 nums中括号6 0123456 那跑过0123456 也就是把这个nums阵列里面的 每一个值都跑过 所以呢执行之后 它就会从头到尾 从15写到626 ok 所以呢我们可以这样子写 来跑过一个阵列里面的 所有值 那这堂课就差不多到这边啦 跟大家介绍了 for回圈希望大家都有了解 那我们就下一堂课见啦 掰掰 哈啰大家好 我是小白 接下来跟大家介绍的是 二维阵列 二维阵列其实呢 就是在阵列里面再放阵列 那我们要怎么样去 创建一个二维阵列呢 基本上创建二维阵列的 方式跟创建阵列的 方式是一样的 首先我们都要先指定 要放在这个阵列里面的资料 它的资料型态是哪一种 假设我想要放的是整数 我就要先写int 然后呢后面都要加上一对 中括号 不过这个时候如果我想要 创建的是二维阵列 要在中括号里面写上一个逗点 来表示现在创建的是 二维阵列 然后呢一样取一个名字 我叫它num 等于一对大括号 不过现在大括号里面 我们就不能写 直接写整数啰 不能直接这样写123 我们要在阵列里面 再放阵列嘛 所以大括号里面再写大括号 假设里面写的是123 好如果里面有另外一个值 再写一个大括号 456 再来一个 789 最后不要忘记加上分号 OK 这样子呢 我们就成功的创建了一个 二维阵列 不过通常我们不会把 二维阵列写成这样 写在同一行 我们会把它换行一下 像是这个样子 因为这样子写 看起来会比较清楚 比较有一个平面 比较有一个二维的感觉 好那这个时候你可能会想问 我们创建一个二维阵列 能干嘛呢 它有什么实际的应用吗 二维阵列 它可以让我们更方便的 去存取一个表格里面的资料 又或是 它可以让我们更方便的去 记录一个平面上面的资讯 比如说一张地图 等等之类的 所以呢我们习惯把它写成 这样子的原因就是 它这样看起来比较像是一个平面 OK 好那我们要怎么样 取得二维阵列里面的值呢 比如说我想要取得这个1好了 我们可以这样子写 nones 然后一对中括号 里面写0.0 我直接把它 写出来看看 system.console.writeline 好我们执行 可以看到 它就写出了1 为什么会写出1呢 这个00是什么意思呢 第一个0代表的是 我们现在要读取的是 第几个横排 那大家应该没有忘记 在C-Sharp的世界里面 所有的数字都是从0开始算的 所以呢 写0的意思就是想要读取 第一个横排 第一个横排就是这个 就是这个123的阵列 那第二个值呢 代表的是我们现在要读取的是 第几个值排 一样 0的话就代表第一个值排 所以呢 第一个横排 然后第一个值排 就是这个整数1 那这里我写一下英文 比较推荐大家记英文 横排的话 我们叫做row 横排 row 值排的话叫做column column 值排 所以呢当我们写00的时候 就是要找第一个row 然后第一个column的值 是1 那如果我们想要取得的是5这个值的话 就要找第二个row 第二个column 所以呢这边就要写1 好执行 就得到了5 那如果8呢 8的话它是第三个row 然后第二个column 所以呢第三个row 我们这边就要写2 再执行一次 就得到了8 ok 好 那我们二维阵列还有另外一个 创建方式 就是当我们在创建的时候 如果还不确定里面的值 是什么 我们就要创建一个空的二维阵列 写法一样 要先指定里面放的资料的资料型态是什么 假设里面放整数 我就写int 然后一对中括号 中括号里面要加上逗点 然后接着取名字 等于的右边就比较不一样啰 我们写new 然后接着写上 存放的资料型态int 接着一对中括号 在中括号里面要写上 这个二维阵列 它有几个row跟几个column 也就是几个横排跟几个直排 假设我想要它有 三个row 四个column就写3逗点4 最后不要忘记 加上一个分号 ok 那这样子呢 我们就创建了一个 空的二维阵列 这个二维阵列里面放的是整数 然后呢它有三个row四个column ok 如果今天确定了 这个二维阵列里面的直是什么 就可以这样子把它写进去 比如说 它的第一个row 第一个column的直是3 那我们就写中括号00 等于3 然后呢 如果它的第一个row 第二个column的直是4 那我们就写0逗点1 等于4 ok 像是这个样子喔 好那再来呢 如果我们想要创建的不是二维阵列 是三维或是四维五维 更多维的话 怎么办呢 非常的简单 我们就在中括号里面 再加一个逗号 再加一个逗号就表示 我们要创建的是三维阵列 那就是阵列里面再包阵列 然后再包阵列 包了三层 这样子就是一个三维阵列 如果是四维的话 就是再加一个逗点 以此类推喔 ok 下面这边也是一样 如果你想要创建的是三维 就再加一个逗点 这边的话一样再加一个逗点 然后告诉它你的第三维 它的这个直是多少 ok 好那这个呢 就是我们这一堂课的内容 跟大家介绍了二维阵列 那我们就下一堂课见啦掰掰 哈啰大家好我是小白 接下来跟大家介绍的是 class 跟object 把它们翻成中文 是类别跟物件 不知道大家有没有想过 其实在我们的现实生活中 有非常多的东西 我们都没有办法用 之前介绍的那些资料型态 来做表示 比如说一个人好了 我们有办法用 单单的一个数字 或是单单的一个字串 或是不灵职来表示一个人吗 不太可能嘛 因为一个人有的属性 有的资讯太多了 一个人有他的身高 有他的年纪 有他的名字 有他的职业等等等等的 再举个例子 比如说一台手机 一台手机有他的型号 有他的号码 有他的厂商 有他防不防水 等等等等的 所以有太多的东西 我们都没有办法用 之前介绍的那些资料型态 来做表示 那这个时候怎么办呢 这个class 就是拿来帮我们解决这个问题的 我们可以创建一个class 创建一个类别 也就是创建一个 我们自己的资料型态 那我们要怎么样创建class 呢 看到右边的这个栏位 然后找到我们的专案名称 这边我的专案名称叫做 Console App 1 对着他点右键 这边有一个加入 新增项目 点下去 然后呢这边就有一个 C-Sharp 的类别 好我们选择他 然后呢在下面的名称 我们可以帮他取一个名字 这个名字就是我们要创建的资料型态 他的名字 假设我想要创建一个资料型态 是拿来表示人 那我就叫他person 注意一下 这边的命名通常我们会把 第一个字母把它用大写的 来表示 好新增 可以看到 按下新增之后这边就多了一个 person.cs 的C-Sharp 档案 然后他也会出现在 右边这边person.cs 在这里 这个person.cs 是我们原本的 C-Sharp 档案 OK 好那看到他里面写了一堆 不知道是什么东西 先不用担心喔这个using 是什么 还有namespace 是什么 我们下一堂课会介绍 所以这边先把他们都删掉 就留一个class 就好了 好 所以呢我们想要创建一个类别 创建一个class 就是先写上class 然后后面加上类别的名称 我们想要创建的资料型态 他的名称 这边我叫他person 拿来表示一个人 然后后面加上一对大括号 接着呢我们就可以在这对 大括号里面去定义 这个资料型态他有哪些属性 比如我刚刚说了 一个人有他的 身高有他的年纪 有他的名字码 所以我们就来设定 那其实设定属性 跟创建变数的写法 是蛮像的 我们想要person 想要人 有一个身高的属性 那就要写上 这个身高的属性他的资料型态 是哪一种 那我这边用double 因为我们希望身高是有小数点的 接着帮他取一个名字 我叫他hi 到目前为止 跟创建变数都是一样的 不同的是我们要在前面 加上一个public 至于这个public 是什么意思呢 大家可以先不用管 在之后的课堂会再跟大家做解释 就先跟着写就好了 所以这样子呢 我们就设定了一个属性身高 如果还要有 其他的属性比如说年纪 就再写public 那年纪我就给他用int 这个资料型态 叫他age 再来一个 名字 名字的话用string 叫他name 那这样子呢我们就成功的帮 person 这个资料型态 帮person 这个class 新增了三个属性 分别是hi age 跟name 也就是身高年纪跟名字 好 这样子写好之后 我们就成功的创建了 person 这个资料型态的 模板 注意喔class 他只是创建一个资料型态的 模板而已 那我们现在已经写好了 person 的模板之后 要怎么样把实体的person 给创建出来呢 来我们回到 原本的program.cs 回到原本的 c sharp 档案 我们想要创建实体的person 可以这样子写 先写上模板的名称 我们是叫person 嘛所以我写上person 接着帮你的变数 取一个名字我叫他person1 等于 new 后面一样写上你的模板名称 接着一对小括号 然后加上分号 ok 这样子写 我们就成功的创建了 实体的person 然后我们把他放到person1 这个变数里面 ok 那只要是 用模板创建出来的东西 我们就叫他 是一个object 是一个物件 所以呢这个person1 他就是一个物件 是一个object 好那创建好这个物件 之后我们就可以设定他的 身高年纪跟 名字的属性了 如果我们要设定他的 身高属性可以这样子写 person1 这个物件 他底下的height 属性 然后等于 假设他 170.5公分 再来如果我们要设定 person1 这个物件底下的 年纪属性 等于42岁 再来 person1 的 名字属性 name 属性 假设他叫小黑 ok 那这样子写呢我们就把 person1 他的身高 年纪跟名字设定上去了 好那我们直接 把他写出来看看 system.console rightline 我们把 person1 他的身高写出来 好执行 可以看到 他就写出了 170.5 因为这边我们是把 person1 他的height 属性 给写出来嘛他是 170.5公分 如果写的是.age 也就是写出他的年纪属性 就得到了42 名字的话也是一样 .name ok 那如果我们想要创建第二个人的话 就一样再写一次 这边我直接用复制的比较快 变数 改叫person2 这边一样要改成person2 假设身高 160.6 年纪 22岁 名字叫做小橘 那这边呢我们写出 person2 他的 也写出他的name 好了 好我们执行 可以看到 就先写出了小黑再写小橘 因为我们先写的是 person1 他的name 小黑 再来是person2 他的name 小橘 如果这边 我把他改成 年纪的话呢再执行 就得到了 22 因为呢 person2 也就是小橘 年纪是22岁 ok 所以呢我们可以利用 class 来创建一个 模板接着再根据这个 模板把实体的 物件给创建出来 然后呢就可以去设定 里面这些属性了 ok 当然如果你还想要创建 更多的资料型态更多的 模板也是可以的 我们就在一样在专案的地方 点右键加入 新增项目然后选择 类别然后在下面帮你的 资料型态取一个名字 ok 好那这个就是这一堂课的内容 跟大家介绍了 class 跟object 也就是 类别跟物件希望大家都有了解 那我们就下一堂课见啦 掰掰 哈啰大家好我是小白 接下来跟大家介绍的是 Namespace 跟Using Namespace 呢 它是一个空间 一个可以让我们存放 很多模板的空间 那Namespace 的功用 是拿来帮我们分类跟管理 这些模板的 举个例子 假设今天我想要做 一个游戏 这个游戏是 把一堆动物关到一个房子 里面去打架 那我们是不是就要创建很多的模板 因为一个房子里面可能有 桌子阿有椅子阿 有电视阿有电脑阿 等等的 动物也是有非常多种 有人阿有狗阿有猫阿 有大象阿等等等之类的 所以我们的模板 我们的class 就会创建很多个嘛 那有很多的话 我们就可以用 Namespace 来做管理了 比如说 我们创建一个空间 一个Namespace 那这个空间里面就是拿来放有关动物的模板 像是这个样子 创建Namespace 的方法 是先写Namespace 接着呢帮这个空间取一个名字 假设我叫它Animal 然后再接着一对大括号 那我们就可以 把有关动物的模板 都放进来了 好把它放进去 那我们也可以再创建 另外一个空间 假设我叫它House 好了 我们就写Namespace House 那这个空间 是拿来存放 有关家具的模板 OK 所以呢Namespace 它是一个空间 一个可以让我们存放很多模板的空间 那它的功用是什么呢 它的功用是可以让我们把这些模板 做分类跟管理 OK 现在我们已经把Person 这个模板 放到Animal 这个Namespace 里面了嘛 那我们前面在创建 Person 物件的时候 就不能这样子写了 我们只要在 Animal 这个Namespace 以外的地方 也就是在这对大括号以外的地方 使用到它里面的模板 那我们就要在使用这个模板之前 在标注 它是属于哪一个Namespace 的 像Person 它是属于Animal 这个Namespace 的 那我们就要在前面加上 Animal 点 来表示说 这个Person 是属于Animal 这个Namespace 底下的模板喔 后面也是一样 都要加上Animal 点 好那我们执行 这样子就不会出错了 OK 那我们每次都要这样加Animal 点 很麻烦嘛 这样很冗长嘛 如果我们不想要每次都这样子加的话 也可以 只要在 开头的地方写上 using Animal 再加上一个分号 这样子就可以了 我们执行 可以看到结果是一样的 所以我们只要在 开头的地方写上 using 然后加上你要使用的 那个Namespace 它的名字 这样子写的意思就是说 我们要在这个C-Sharp 的档案里面 使用 这个Namespace 里面的模板喔 那已经这样子写了之后 就不需要再创建的时候 在前面加上Namespace 的名称了 OK 好接下来 我们来看一下 Constant.Constant.Constant.Constant.Constant.Constant.Constant.Constant.Constant.Constant.Constant.Constant.Constant.Constant.Constant.Constant.Constant.Constant.Constant.Constant.Constant.Constant.Constant.Constant.Constant.Constant.Constant.Constant.Constant.Constant.Constant.Constant.Constant.Constant.Constant.Constant.Constant.Constant.Constant.Constant.Constant.Constant.Constant.Constant.Constant.Constant.Constant.Constant.Constant.Constant.Constant.Constant.Constant.Constant.Constant.C 那看到这边大家有没有觉得我们是不是也可以把这个System省略掉呢 如果我们不想要每次Console.WriteLine的时候都写这么长 其实也可以把这个System省略掉 因为它是一个Namespace嘛 所以如果我们想要使用System这个Namespace底下的Console 可以在开头的地方写上usingSystem OK,这样子写就不需要在使用Console这个类别的时候 在前面加上System这个Namespace了 我们再执行一次 可以看到结果是一样的 OK 好,那我们其实也可以在Namespace里面再写Namespace喔 我们在一个空间里面再创建一个空间 像这个样子,我们在里面再创建一个Namespace 假设我叫它QQ 然后呢 把这个Person放进去 那这样子如果我们要使用 如果我们要使用Person这个类别的话 这边要写的就是usingAnimal.QQ 这样子写的意思就是我们要使用Animal这个Namespace底下的QQ这个Namespace里面的模板喔 OK,所以我们也可以在Namespace里面再创建Namespace 好,所以总结来说 Namespace就跟我们的资料夹是蛮像的喔 我们可以透过资料夹帮我们做档案的管理跟分类 这个Namespace2的资料夹里面就放了123.666跟777这三个档案 那Namespace1这个资料夹里面放了123.456跟789这三个档案 当然我们也可以在资料夹里面再放资料夹 也就是在Namespace里面再放Namespace OK,像是这个样子 好,那using的部分呢 就是我们要使用哪一个Namespace 就是要使用System这个Namespace usingAnimal.qq就是要使用Animal这个Namespace底下的QQNamespace 好,那希望大家都有了解 我们就下一堂课见啦,掰掰 好,大家好,我是小白 接下来跟大家介绍的是Method Method把它翻成中文是方法 方法呢,就是可以让我们在class里面去定义一些功能来做使用 比如说我想要在person这个class里面定义一个功能叫做SayHi好了 那我们就可以这样子写 一样先写上public 那public大家先不用管它是什么意思喔 之后的课程我会再跟大家做解释 所以先跟着写 后面接着void ok,那这个void现在你一样先不用知道它是什么意思 先跟着写就好了,等等再跟大家做解释 好,那在后面呢,接着写上你想要帮这个功能取的名字 我刚刚说想要把它叫做SayHi嘛,SayHi 后面接着一对小括号,再来一对大括号 那我们就可以在这对大括号里面写上 这个功能它要做的事情是什么 假设我想要SayHi这个功能做的事情是 在console里面写出这个person这个人的名字 那我就可以写console.writeline 接着一对小括号 诶,大家应该有注意到这边我就没有写system.console.writeline了 为什么呢? 因为开头的地方预设它已经帮我们引入system这个namespace了 ok 好,那我们要写出这个人的名字 我顺便写一下这个你好啊 我叫 然后再加上这个person这个人的名字 ok,因为我们的变数,我们的名字叫做name嘛 所以我这边就可以直接加上name 那定义好了person的功能之后 定义好了这个SayHi功能之后,要怎么样使用它呢? 我们回到原本的这个program.cs 在这边呢,我们已经创建了person1跟person2这两个物件了嘛 这两个人了 那想要使用SayHi方法,我们就可以这样子写 person1.sayhi 接着一对小括号 这样子写,它就会去帮我们执行SayHi方法里面的程式码 ok 好,直接执行看看 可以看到它先写出了你好啊我叫小黑 然后下面写了这个 我先把它删掉好了 这样比较不会这么乱 好,再执行一次 可以看到它就写出了你好啊我叫小黑 为什么呢? 因为我们用person1这个物件去呼叫SayHi方法 那person1它的name是什么? 它的名字是小黑嘛 当这边执行了SayHi方法里面的程式码之后 它写出了你好啊我叫加上name 那这边的name是小黑这个字串 所以它就会写出你好啊我叫小黑 那如果是用person2来呼叫SayHi这个方法的话 我们执行看看 可以发现它就写出了你好啊我叫小橘 因为呢,这边的person2这个物件 它的名字是小橘 好,那如果我们还想要让person有第二个功能也可以 假设我还想要有一个功能是 判断这个人有没有超过18岁好了 那我就可以再定义一个功能 一样写public void 然后呢,我把它叫做isAdult 接着一对小括号,再一对大括号 好,那我打算这个功能做的事情是 判断这个人有没有超过18岁嘛 如果有超过18岁我就在console里面写出true 如果没有我就在console里面写出false OK,所以我们先来判断 它的年纪也就是age 判断age是不是大于18岁 大于等于18岁 如果是的话 我们就console.writeLine true 反之,如果没有超过18岁 就console.writeLine false 好,那定义好了之后我们要使用它一样 这边我就写person1.sAdult 下面一样写person2.sAdult 那我把小橘的年纪改成16岁 好,那我们执行 可以看到它就先写了true 为什么呢?因为小黑他42岁已经超过了18岁 所以呢就写出了true 反之呢小橘他只有16岁 所以呢就写出了false 他没有超过18岁 OK 好,再来我们也可以让方法回传资料回去 比如说我想要让sAdult这个方法 在判断完年纪是不是大于等于18岁之后 不是在console里面写出true或false 而是回传true或false给原先呼叫的地方 那我们可以这样子写 我们可以写return true 下面也是改成return false OK 这个return的意思就是回传 那我们可以看到现在return这边有红色的波浪 有红色的波浪就表示我们的程式码有问题 那现在的问题就出在这个void 这个void的意思是说 我们的这个方法他并不会回传东西 但是呢我们现在要回传东西了嘛 要回传东西的话这边就不能写void 而是要写上我们要回传的东西 他的资料型态是哪一种 现在我们要回传的是true或false嘛 那也就是要回传不零值 所以这边要写不喔 OK 可以看到写上不喔之后 就不见了 好那现在我们再回来这边 执行 可以发现他就没有写出任何的东西了 为什么呢 因为 这边的return他是回传的意思 那回传的话 就是把原先的呼叫给覆盖过去 所以呢 小黑他是 他是42岁嘛 那42岁的话他就有大于等于18岁 会回传true嘛 回传true就是相当于把这一串盖过去 变成true这样子 好那这个时候如果我们把 把他console.writeline出来看看 console.writeline 把他回传的值写出来 再执行一次 欸就写出了true 为什么呢因为刚刚说了嘛 回传就是覆盖过去 覆盖过去也就是变成这个样子 好那下面也是一样 我会把他 console.writeline出来 我们再执行一次 欸他就先写出了true再写出false 因为呢小黑他有超过18岁 所以是true 小橘只有16岁 所以呢就写出了false ok所以呢我们可以让 方法回传资料回去 那这个时候你可能就会想要问啦 为什么我们需要把资料回传回去呢 像现在这样子执行 他也是写出 true跟false嘛 那我们原本的写法 我把他改回来 原本的写法是这样子嘛 然后这边不是用return 而是写这样子 当我们这样子写的时候执行 他一样是写出true跟false 那为什么我们需要return呢 原因是这样子的 并不是我们每次在使用方法的时候 都是这么简单的把结果写到console里面 就没事了 更多的时候我们会希望把结果 更多的时候我们会希望把结果 回传到呼叫的地方 因为呼叫的这个地方 可能还要做后续的处理 比如说回传过来之后 我还要判断 if person1这个人 如果他有成年的话 我就让他执行某一些程式 像是进入网站啊 或是其他的等等之类的 ok 所以呢这个就是为什么 需要return的原因 因为大部分的时候 我们都会希望把结果 回传回去 然后呢再做一些后续的处理 ok 好 再来 我们也可以在呼叫方法的时候 传资料进来 比如说 现在我还想新增一个功能 这个功能是可以做两个整数的相加 然后把相加的结果回传回去 然后把相加的结果回传回去 那我们就来创建它 一样先写public接着int 为什么是写int呢 因为整数加整数还是整数嘛 所以我们回传回去的资料型态 就是整数 我把它取名叫做add 接着一对小括号再一对大括号 ok 那我们想要做两个整数的相加 就需要 在呼叫add的时候 传两个整数进来嘛 这样我们才可以做相加嘛 所以呢我们可以在这对小括号里面写上 我们希望呼叫这个方法的时候 需要传什么样的东西进来 我们想要它传进来的是两个整数嘛 所以呢就在里面写上int 接着帮这个整数取一个名字 我叫它num1 然后呢逗点 我们还想要它传入第二个整数 所以一样写上int 后面一样帮它取一个名字 我叫它num2 好那我们就可以在里面做运算了 我们先把这个整数 我们要做的是把两个整数做相加 也就是num1加num2 然后呢 把它回传 所以return num1加num2 ok 那我们这边已经定义好了这个方法之后 在呼叫的时候 我们写person1.add 呼叫这个方法的时候 一对小括号 我们就要在这对小括号里面 传入两个整数 假设我第一个整数 假设我第一个传的是2 然后呢逗号第二个传的是3 这样子写的意思就是把2 放到这个num1变数里面 然后把3 放到这个num2变数里面 然后呢它做num1加num2 也就是2加3等于5 再回传给我们 所以这边这一串就会变成5 这样子 ok那我们直接把它印出来看看 console.writeline 把回传过来的值 给写出来 好我们执行 就得到了52加3等于5 如果传进去的是8跟5的话 就得到了13 8加5等于13嘛 8加5等于13嘛 8加5等于13嘛 所以呢我们也可以在呼叫方法的时候 传资料进去 当然如果你想传更多的资料 或是不同的资料 也可以假设我这边在传第三个 是一个字串 然后叫它QQ 那我们在呼叫ADD的时候 就必须在写第三个参数 它是一个字串 像是这个样子 ok 好最后我们来看一下 console.writeline这个地方 当我们把滑鼠放到 writeline上面的时候 可以发现其实这个writeline 也是一个方法 那这个方法它回传的资料型态 是void的也就是说 它是不回传资料的 那这个writeline它是属于 console这个class底下的 它需要传入一个资料 所以呢当我们在 小括号里面传入一个资料的时候 这个方法它就会帮我们在 console里面把这个资料 给写出来 ok这个console是一个 内建的class所以呢 它是内建class底下的方法 ok好那这堂课就差不多到这边了 跟大家介绍了 method的方法 那我们就下一堂课见啦 掰掰 好大家好 我是小白接下来 跟大家介绍的是 man方法 其实在C-Sharp里面 要怎么样知道程式码是从哪边开始执行的 就是要透过 man方法 诶这个时候你可能会想问啊 我们的程式码不就从这边开始执行吗 也没有看到什么man方法啊 其实是这样子的喔 当我们这样写的时候 C-Sharp在背后 它会帮我们把它包成一个man方法 像是这个样子 会把这边的程式码 包成一个man方法 static 那大家先不用管这个static是什么意思喔 之后会再跟大家做解释 void 因为这个man方法 没有回传值 所以写void 接着写上man 一对小括号一对大括号 然后呢把这些程式码 包进来 包在这个man方法里面 ok 那方法它又要包在一个class里面嘛 所以呢它又会帮我们包在一个class里面 包在一个叫做 program program的class里面 把这个man方法 包进去 ok 所以呢当我们只有写这样子的时候 当我们只有写这样子的时候 其实呢C-Sharp在背后 也会帮我们把它变成这个样子 包在class 然后再包在一个man方法里面 像是这个样子 ok 那当我们只有写这样子的时候 好那我们直接执行看看 可以发现没有出错 而且结果也是对的 这边太多了我直接把它改少一点 我们直接console .writeline 写出一个字串你好就好了 好我们执行 可以看到它是成功的写出你好 没有出错 ok 所以呢我再讲一次当我们只写这样子的时候 当我们只有写这样子一行的时候 当我们只有写这样子一行的时候 C-Sharp在背后也会帮我们把它包装成这样子 因为呢 C-Sharp就是透过这个man方法 来判断程式是从哪边开始执行的 来判断程式是从哪边开始执行的 所以当我们按下这边执行按钮的时候 所以当我们按下这边执行按钮的时候 C-Sharp就会找到man方法 然后去执行这个大括号里面的程式码 由此可知喔 man方法它是一个非常特别的方法 man方法它是一个非常特别的方法 我们并不需要去呼叫它 只要一按下执行按钮 就会自动运行里面的程式码了 ok 那这也是为什么当我们在新增一个专案的时候 我们新增一个主控台应用程式 我们新增一个主控台应用程式 下一步下一步 好建立 当我们新增一个专案的时候 当我们新增一个专案的时候 可以看到预设它就帮我们写了一个man方法 可以看到预设它就帮我们写了一个man方法 然后在man方法里面写了 Console.WriteLine.HelloWorld 然后呢把这个man方法 包在一个program的class里面 这边它又把class包在namespace里面 这边它又把class包在namespace里面 当然我们也可以把它包到namespace里面 当然我们也可以把它包到namespace里面 那我们把它包到ConsoleApp1里面 那我们把它包到ConsoleApp1里面 好这样也是可以的 那这边man方法已经包在ConsoleApp1这个namespace里面的话 那这边man方法已经包在ConsoleApp1这个namespace里面的话 那我们就不需要在上面再写usingConsoleApp1了 我们就不需要在上面再写usingConsoleApp1了 我们就不需要在上面再写usingConsoleApp1了 因为它已经包在这个namespace里面的话 我们就可以直接使用这个namespace里面的所有模板了 我们就可以直接使用这个namespace里面的所有模板了 假设我们想要创建person的话 假设我们想要创建person的话 就直接写person 然后person1等于 new person person 这样子就可以了 好所以呢什么是man方法呢 man方法它是一个进入点 我们从这么多的程式码里面 我们从这么多的程式码里面 要怎么知道程式要从哪边运行呢 就是透过这个man方法 当我们按下执行的时候 C Sharp就会找到man方法 然后去执行man方法这个大括号里面的程式码 然后去执行man方法这个大括号里面的程式码 OK希望大家都有了解 那我们就下一个影片见啦掰掰 哈啰大家好我是小白 接下来跟大家介绍的是 Constructor 把它翻成中文是建构方法 把它翻成中文是建构方法 这个建构方法是一个很特别的方法 它是当我们每创建一个物件 它是当我们每创建一个物件 都会被呼叫一次的方法 好我们直接举个例子 好我们直接举个例子 假设我们想要帮person这个class 假设我们想要帮person这个class 新增一个建构方法也就是constructor 我们可以这样子写 一样先写上public 一样先写上public 接着呢要写上这个class的名称 接着呢要写上这个class的名称 这边我是叫person所以我写上person 接着一对小括号 再来一对大括号 再来一对大括号 大家应该有发现喔 这个建构方法 我们并不需要写上它回传的资料型态 我们并不需要写上它回传的资料型态 我们不需要在这边写上void啊 或是写上int啊或是string啊等等的 为什么呢 因为这个建构方法 它并不能回传资料喔 ok 那我们想要每创建一个person物件 就执行一次的程式码 就可以把它写在 这对大括号里面 假设我想要每创建一个person物件 假设我想要每创建一个person物件 就在console里面写出创建成功 那我们就可以在里面写 console.writeline 创建成功 好我们直接执行 可以发现它写出了两次创建成功 可以发现它写出了两次创建成功 为什么会写出两次创建成功呢 为什么会写出两次创建成功呢 因为我们在这边创建了两个person物件嘛 一个叫person1 一个叫person2 当我们创建person1这个物件的时候 它就会执行这边的建构方法 它就会执行这边的建构方法 那我们在创建一个person2的时候 它就会再执行一次这边的建构方法 OK 这个建构方法 我们也可以传资料进来 比如说我想要它传一个字串进来 比如说我想要它传一个字串进来 叫QQ 那我们就把这两个字串连接在一起 在这边写new person的地方 就可以在小括号里面写上 我们想要传过去的资料 我们想要传过去的参数 比如说我传一个字串说舒服 那这边的话我传一个字串 叫做爽辣 好那我们执行 可以看到 第一次写的就是创建成功舒服 然后第二个写的是创建成功爽辣 然后第二个写的是创建成功爽辣 因为我们第一个传的是舒服 第二个传的是爽辣 所以呢 它就会在这边写出创建成功舒服跟爽辣 OK 那我们就把这个字串连接在一起 好 接下来不知道大家有没有发现 我们真正每创建一个person物件的时候 都会做的事情是什么 都会做的事情是什么 这边创建了一个person1 是不是就要设定它的身高 年纪跟名字 是不是就要设定它的身高 年纪跟名字 再创建一个person2 一样要设定它的身高年纪跟名字 如果还有一个person3 一样要设定它的身高年纪跟名字 所以这些每创建一个person物件 都要执行一次的程式码 我们就可以把它放到 建构方法里面 OK 这边可以这样子写 我让它传入身高年纪跟名字 我让它传入身高年纪跟名字 所以呢 这边第一个要传进来的是身高 我叫它H 第二个传的是年纪 我叫它A 最后一个是名字 我叫它N 那在里面呢 我们就可以写上属性HIGH 这边的属性HIGH 等于传进来的H 然后属性H 等于传进来的A 接着NAME 等于N 然后呢 这边也可以改掉 把它改到这边 170.5 接着42 好 那下面也是一样 160.6 然后呢 16岁 再来是小橘 贴过来 那我们这里 就可以删掉了 好那我们执行看看 没有出错 好那我们 好那我们试着 把Person1跟Person2的名字写出来好了 写Console.WriteLine 写出 Person1.NAME 好再来写出Person2.NAME 我们执行 可以发现就写出了 小黑跟小橘没有问题 那如果改成 年纪呢 再执行 就写出了 42岁跟16岁也没有问题 所以我们可以利用建构方法 改成这样子来设定属性 就简洁许多了嘛 不过呢 这里有一个问题 就是当我们把 传进来的这些参数 假设我把它不是取名叫Edge 我把它取名叫做Hide 然后呢 年纪一样我取名叫Edge 名字 我取名叫Name 当这边传进来的参数 它的取名 跟我们的属性取名都是一样的时候 这边我们是不是要写Hide 等于Hide 诶有没有发现怪怪的 我们写Hide等于Hide 那C Sharp怎么会知道 这个Hide我们想要表示的是这边的属性Hide 那这个Hide我们想要表示的是 传进来的这个参数Hide 其实当我们这样子写的时候 这边的这两个Hide 都是这个传进来的参数Hide 为什么呢 当我们有两个都叫做Hide的时候 它会选择 离它比较接近的这个Hide的意思 来做使用 那如果我们把这个Hide 所以Hide等于Hide 其实这两个Hide 都是这个参数的Hide喔 我们把滑鼠放过来 可以看到它告诉我们这个Hide 是一个参数 再放过来一样是一个参数 OK 那要怎么样解决这个问题呢 非常简单 如果我们想要表示属性的Hide 可以在前面加上一个 List. 这个List.Hide 就是属性Hide的意思 所以呢我们这样子写 就是把传进来的Hide 放到属性Hide里面 OK 下面也一样 List.Edge等于传进来的Edge 然后呢 List.Name等于传进来的Name OK 那这样就没有问题了 我们再执行一次 可以看到结果是不变的 42跟16 OK那这堂课就差不多到这边了 跟大家介绍了 Constructor建构方法 希望大家都有了解 那我们就下一堂课见啦 掰掰 哈啰大家好我是小白 接下来跟大家介绍的是 Getter还有Setter 我们可以利用Getter还有Setter 来限制属性的存取 来限制属性的存取 举个例子 现在我新增了一个类别 叫做Video 它是拿来表示影片的 那这个Video有三个属性 分别是Title,User,Type 分别是Title,User,Type 那这三个属性是拿来表示 影片的标题,影片的作者 还有影片的类型 然后呢我们希望 影片的类型只有四种 要嘛是教育,要嘛是娱乐 要嘛是音乐 不然就是其他 好那这边我创建了两个影片 一个的类型是教育 一个是娱乐 但是呢 如果今天我在这边乱写 影片的类型我写哈哈 那我们把它写出来看看 media one.type 可以看到它就真的写出了哈哈 可以看到它就真的写出了哈哈 但是这样合理吗 不合理嘛 因为呢我们想要限制影片的类型 只有这四种 要嘛是教育,娱乐,音乐 不然就是其他 可是它却在这边乱写一个哈哈 如果我们想要限制属性的存取 如果我们想要限制属性的存取 首先就要先把这边的public改掉 首先就要先把这边的public改掉 因为现在我们是想要限制type属性的存取嘛 因为现在我们是想要限制type属性的存取嘛 所以这边就不能写public了 那这个public是什么意思呢 那这个public是什么意思呢 public的意思就是说 这个属性它可以在任何的地方被存取 这个属性它可以在任何的地方被存取 那如果我们不想要这个属性 那如果我们不想要这个属性 它可以在任何的地方 都被做存取的话 可以把public改成public 可以把public改成public 改成public之后呢 这一个属性 它就只能在video class里面作存取了 它就只能在video class里面作存取了 也就是说它只能在这对大括号里做使用了 也就是说它只能在这对大括号里面作使用了 那我们回到原本的program.cs 可以看到这边 我们想要存取video.type的时候就出错了 为什么呢 因为现在这个type属性 它是private 也就是它只能在video的class里面做存取了 好,那第一步就已经完成了 如果我们想要限制属性的存取的话 第一步就是要把它改成private 再来呢 第二步就是getter跟setter出场的时候了 我们可以这样子写 写一个特别的方法 先写上public 接着呢 因为我们要限制的是type属性嘛 我们根据type属性 它的资料型态 来写上我们回传的资料型态 然后帮它取个名字 我叫它type 不过T是大写的T TYPE 好接着一对大括号 那我们可以在里面写上get 一样一对大括号跟set 接着一样一对大括号 那get这对大括号里面要写的东西 就是当有人要取得这边的type的时候 我们要做的事情 这里我就直接 把原先的type属性回传出去 再来set这对大括号里面要写的东西 是当有人要设定这边的type的时候 我们要做的事情 那它设定的值就是value 这个value就是表示有人要设定type的时候 设定这边的type的时候 它设定的值 所以呢 我们就可以来做判断啦 如果设定的值是等于等于我们的教育 或是设定的值是等于等于娱乐 或者 它是等于等于音乐 再来最后一个是 等于等于其他 如果他们是正确的在做设定 没有乱写的话 那我们就把type它的值等于value 把它设定上去 反之呢 如果他乱设定 他打了一些不知道什么奇怪的字串 那我们就把type把它设定成其他 这样就不会出现一些奇怪的影片类型了 好

那在这边我们的list.type等于type也要改掉 把它改成大写的type等于传进来的type 好

那我们现在这样子写的意思就是说 只要你是在外面 也就是在video这个class以外的地方 想要存取type属性的话 就要经过这边的这个大写T的type 如果你设定它的值是教育是娱乐或是音乐 或是其他的话 我们就会帮你把它设定到type属性上面 那如果你乱设定的话 我们就帮你把type属性设定成其他 那如果你想要取得type的话 他就会直接回传type属性给你 OK 所以呢 这边如果我们在写哈哈的时候 我们再把type写出来 这边就要写大写的type 然后执行 可以看到虽然我们写的是哈哈 但是他会写出其他 这样子我们就可以来限制属性的存取了 那我再解释一次给大家听 为什么这边会写出其他 因为现在我们想要限制type属性的存取 所以我们可以把public改成private 改成private之后 这个type属性 他就只能在video的class里面做存取了 那接着我们就可以设定get跟set 所以呢 现在这个大写的t的type就相当于这个type属性的对外代理人 如果你想要设定 你想要取得这个type属性的话 你就要透过这个大写的type 所以呢 我们想要在video class以外的地方存取type属性的话 就要透过他的代理人 也就是大写t的type 现在我们写video1.type 意思就是我们想要取得他嘛 那取得他的话 他就会执行get这个大括号里面的程式码 那他大括号里面的程式码是直接回传type属性给我们 所以这边他就会回传type属性给我们 那如果我在这边设定video1.type 他等于 教育 好 当我们这样子写的时候 是要设定这个大写t的type 那要设定他的话 他就会执行set这个大括号里面的程式码 好

那我们执行 可以看到就写出了教育 为什么呢 因为他会执行大括号里面的程式码 那这个value就是我们设定的值 现在设定的是教育 他发现我们设定的是教育 符合四种中的其中一种 所以呢 他就把type属性改成我们设定的值 反之如果这边我在随便 把他乱设定 我设定说舒服 再执行一次 就会变成其他 因为呢 当我们设定这个大写t的type是舒服的时候 他就会执行这个大括号里面的程式码 那现在你设定的值不符合四种中的其中一种 他就会把type属性改成其他 OK 当然这边你也可以不要叫大写t的type 你想要叫QQ也是可以的 就都把他改成QQ 在外面要做存取的时候一样写QQ 好

那我们执行 一样得到其他 不过呢 这边我们还是尽量把他取得有意义一点哦 好

那这个就是这堂课的内容 跟大家介绍了get跟set 他可以帮助我们来限制属性的存取 那我们就下堂课见啦 拜拜 好大家好 我是小白 接下来跟大家介绍的是static attribute 把它翻成中文是静态属性 好 这边我创建了一个video的class 他有三个属性 分别是title author跟type 那这边呢 我们就创建了两个video的物件 然后呢 也设定了他的属性 好

那下面我们就写出了video1这个物件的type属性 跟video2这个物件的type属性执行 就可以得到教育跟娱乐 因为呢 video1他的类型是教育 video2他的类型是娱乐 好那什么是static attribute呢 刚刚我们说到的这些属性 这个title author跟type 他们都是属于物件的属性 属于我们创造出来的物件 video1跟video2的属性 那这个static attribute 这个static的属性呢 他是属于class本身的 是属于类别本身的 比如说我可以创建一个static的属性 用来表示我们总共创建了几个video的物件 那我就可以这样子写public 然后呢static 接着呢 资料型态 我用整数int 然后把它叫做video 好 那我们这样子写呢 就成功的创建了一个static的属性 叫做videoCount 他的值是0 那如果我们想要取得刚刚的videoCount属性 这边我们不能写video1.videoCount 这样子写是不行的 为什么呢 因为我们刚刚说了static attribute 静态属性 他是属于class本身的 并不是属于我们创建出来的这些物件 他的属性 OK 所以如果我们想要取得videoCount这个属性的话 要在前面写的是我们的class名称 video 因为呢 这一个属性 他是属于video这个class本身的 好

那我们执行 就写出了0 OK 那这个属性 我们是想要让他记录总共创建了几个video的物件嘛 所以呢 我们在建构函式的地方 只要每建构一次就把videoCount把它加加 OK这样子呢 每创建一个video的物件 videoCount的值就会加1 好

那我们再执行一次 就写出了2 因为我们创建了两个video的物件嘛 然后这边我把它这样子写 然后把这个删掉 我们来看看再执行一次 可以看到一开始写的是0 因为呢 我们还没创建video 接着写1 接着写2 因为创建了一个 然后创建了两个 OK 好 那如果我们坚持想要用video物件 假设是video1这个物件去取得videoCount这个属性的话 也不是不行哦 我们可以另外再写一个方法来让他取得 那我们这边就再写一个 public things get videoCount 我们用这个方法 来让video物件去取得videoCount 所以我们让他return videoCount 好 那如果我们想要取得的话 这边就可以写get videoCount 好 那我们执行 可以看到结果是一样的 012 好 那这堂课的内容就差不多到这边了 跟大家介绍了static attribute静态属性 那我们就下一堂课见啦 拜拜 好大家好 我是小白 接下来跟大家介绍的是static method跟static class 好 那我们先看一下下面这边 这里我写了一个math.sqrt36 这个我们在数字的用法的时候 有跟大家介绍到 不知道大家还记不记得 这个sqrt方法 他会帮我们做开根号码 所以36的开根号 就得到了6 不过呢 不知道大家有没有感觉哪边怪怪的 当我们这样子写的时候 是在使用math这个class底下的sqrt方法 但是我们却不用先创建一个math的物件 不用像这样子写 然后呢再透过这个math来呼叫sqrt方法 而是直接这样子写 那为什么我们可以直接这样子写呢 那是因为这个sqrt方法 他就是一个static method 好 那我们直接来创建一个类别 假设我把这个类别叫做tool tool 如果我们想要创建static method 可以这样子写 public static 假设我创建一个say hi方法好了 他的回传值是void 然后呢 我们直接来创建一个 创建一个say hi方法好了 他的回传值是void 叫做say hi 一对小括号一对大括号 然后呢 我们写出console write line 写出hello ok 这样子呢 我们就创建了一个static method 那这个static的意思 跟static attribute的意思是一样的 所以当我们这样子写的时候 就表示这个方法 他是属于class本身的 而不是属于创建出来的那些物件 他们的方法 好 那如果我们想要使用这个static method的 就直接写tool.say hi 就不需要去创建tool物件了 那我们直接执行 可以看到他就写出了hello 好那再来 当我们在创建math这个物件的时候 我们这样子写new math 会发现一件事情 当我们这样子写的时候 他会发生错误耶 会有红色的波浪耶 来我们放上来 他会告诉我们 无法建立静态类别math 这样子写的意思就是说 我们没有办法创建math物件 因为呢这个math 他是一个static class 他是一个静态类别 因为math 他只是一个工具包而已 所以呢我们没有必要 把math物件给创建出来 那这个时候 我们就可以把这个类别 设定成静态的 也就是static 好 那要把一个类别设定成static 就在前面加上static 就可以了 那这个tool类别呢 就会变成一个静态类别 现在如果我们想要创建tool物件 就会 发生一样的错误 可以发现他告诉我们 无法建立静态类别tool 好所以总结来说 static method的意思就是 这个方法 他是属于class本身的 那static class的意思就是 这个类别 他是不需要创建物件的 OK 希望大家都有了解 那我们这堂课就到这边啦 我们就下一堂课见啦 哈啰大家好 我是小白 接下来跟大家介绍的是 inheritance 把它翻成中文是继承 好 假设今天我们需要用到一个类别 叫做person 人 他有两个属性 分别是名字跟年纪 然后呢有两个方法 一个是print age 他会把年纪写出来 一个是print name 他会把名字写出来 OK 假设我们还需要用到 另外一个类别 叫做student 学生 那他有三个属性 名字、年纪 还有他读的学校 然后呢这边我写了一个 建构方法 下面一样有三个方法 分别是print age 写出年纪 print name 写出名字 还有print score 写出学校 那看到这边喔 大家有没有发现 其实person person这个类别 跟student这个类别 他们有很多地方 都是一样的嘛 都有name属性 都有age属性 name属性 age属性 而且呢 也都有这两个方法 print age跟print name print age跟print name 那他们会长这么像 其实我们应该也不意外喔 为什么呢 因为一个学生 他也是一个人嘛 所以一个人身上有的属性 一个人有的方法 一个学生也应该都有嘛 那这个时候 如果我们不想要 重复的写这么多程式码的话 就可以用 C Sharp的继承 inheritance 这边我们就可以让 student去继承person 用student这个类别 去继承person这个类别 因为person有的属性 person有的方法 student都有嘛 所以这边就可以这样子写 在student后面加上冒号 写上他要继承的类别名称 那这样子写呢 我们就让student这个类别 继承了person这个类别 继承了person这个类别之后 他里面有的属性 里面有的方法 student也都会有了 所以呢 这边我们就不需要写 name跟age了 可以把它删掉 这两个方法也是 都把它删掉 OK 我们就可以 把它精简成这个样子 重复的部分 就都不用写了 好 我来创建一个student看看 student 我叫他student1 等于new student 他的建构方法 需要传入三个参数 分别是名字、年纪跟学校 所以呢 我写名字我写小白 年纪10岁 学校的话 小白 国小 好 那我直接把student1 他的name属性写出来看看 student1.name 执行 可以发现 他就写出了小白 为什么会写出小白呢 我们明明 student他就没有name属性嘛 这边他只有一个score属性 为什么会写出name属性呢 因为他已经继承了person类别 所以person有的属性 他也都会有 他也有name属性 也有age属性 OK 好 那这边如果我写的是age 就写出了10 那写的是 score 学校的话 一样可以 得到了小白国小 那如果我们想要用 继承过来的方法也可以 我们继承了printage 还有printname这两个方法嘛 因为student这里面并没有写 一样我们可以用 这边我就写 student1.printage 好 执行 他就写出了 student1 他的年纪10岁 那要print 名字的话 我们就写printname 也是可以 就写出了小白 当然 student有的print score也可以用 写出学校 好 执行 就得到了小白国小 OK 所以呢 这个inheritance 继承 他可以让我们少写很多 重复的程式码 像这个student跟person person有的属性 person有的方法 student都有 那我们就可以让 student去继承person 这么一来 就可以少写很多 重复的程式码了 OK 好 那今天内容就差不多到这边了 跟大家介绍了inheritance 继承 那我们这个C-Sharp初学者教学的系列 也到这边告一段落了 如果大家有觉得我哪边讲的不是很清楚 或是你想要学习更进阶的内容的话 都非常推荐大家 到网页上面搜寻 W3C C-Sharp 他有分成中文也有英文的 看你要哪一种 好 点进来之后 我们可以在左边的栏位这边 选择你想要学习的东西 比如说你对if判断句还不太熟 那你就可以点进来 这里就有非常详细的教学 比如说你想要了解 这个继承的概念 那我们就点这个inheritance OK 然后呢 还有一些我没有教过的东西 大家有兴趣的话 也可以点进来看看喔 好 希望这个影片有帮助到大家

Need a transcript for another video?

Get free YouTube transcripts with timestamps, translation, and download options.

Transcript content is sourced from YouTube's auto-generated captions or AI transcription. All video content belongs to the original creators. Terms of Service · DMCA Contact

【C#】3小時初學者教學 |Csharp | C# 教學 | C# 入門 | C++++ - YouTube Tr...