C#笔记(慕课网笔记)

C#笔记(慕课网笔记)

开发 md文件 笔记

笔记说明

创建时间:2018年7月18日17:29:17
笔记来源:慕课网(略过非重点)

关键字

关键字 class ,这个关键字的用途是声明类。

关键字 namespace ,这个关键字的用途是声明“命名空间”。

关键字 using ,这个关键字的用途是导入命名空间。

关键字 static (静态的)、 void (无返回值)、 string (字符串类型)。常常在Main()方法的声明中看到:static void Main(string[] args)

注意:所有关键字都是由小写字母组成的,C#语言中,大小写是严格区分的。

例子

    C#    15行

    C#    15行

using System;
using System.Collections.Generic;
using System.Text;

namespace Test
{
   class Program
    {
        static void Main(String[]args)
        {
        Console.WriteLine("今日事,今日毕。");
        }
    }
}

注释

注释,是代码中的一些“说明性文字”。注释本身不会参与程序的编译和运行,仅仅供程序员阅读。

注释分为:单行注释、多行注释、文档注释。

单行注释的符号是2条斜线(请注意斜线的方向),2条斜线右侧的内容就是注释,左侧的代码不会受影响。

多行注释以“/*”开始,以“*/”结束,之间的内容就是注释,可以包含多行。

文档注释写在类、方法或属性(以后会学到)的前面,它的符号是3条斜线“///”。

注意:代码中的Console.WriteLine()会换行,Console.Write()不会换行

例子

    C#    24行

    C#    24行

using System;
using System.Collections.Generic;
using System.Text;

namespace Test
{
    ///定义Program类方法
    class Program
    {
        ///主方法
        static void Main(string[] args)
        {
            /*
             *说明:
             * WriteLine和Write区别(多行注释) 
             */
            Console.WriteLine("积跬步,至千里");//打印并换行(单行注释)
            Console.WriteLine("积跬步,至千里");//打印并换行(单行注释)
            Console.Write("积跬步,至千里");//打印不换行(单行注释)
            Console.Write("积跬步,至千里");//打印不换行(单行注释)
        }
    }
}

C#的常量

常量,顾名思义,就是“不会改变的量”。

语法: const+常量类型

注意:常量在声明时赋值,之后是不能修改的。

例子

    C#    17行

    C#    17行

using System;
using System.Collections.Generic;
using System.Text;

namespace Test
{
    class Program
    {
        static void Main(string[] args)
        {
            const string CITY = "布宜诺斯艾利斯";//常量,城市
            const string NAME = "列奥波尔多·福图纳托·加尔铁里·卡斯特利";//常量,姓名
            Console.WriteLine(NAME+"出生在"+CITY+"的一个工人家庭");//使用常量
        }
    }
}

C#变量

变量能够存储数据,并且与常量不同,变量存储的数据可以修改。

使用变量分为3步:声明、赋值、使用。

声明变量的语法:数据类型 变量名;

给变量赋值的语法:变量名=值;

例子

    C#    19行

    C#    19行

using System;
using System.Collections.Generic;
using System.Text;

namespace Test
{
    class Program
    {
        static void Main(string[] args)
        {
            string hobby;
            hobby="剑道";
            //声明变量保存爱好
            //给爱好变量赋值
            Console.WriteLine("我爱好"+hobby);//打印变量
        }
    }
}

交换

交换也是算法一种

例子

    C#    22行

    C#    22行

using System;

namespace studyConsole
{
    internal class Program
    {
        public static void Main(string[] args)
        {
            string boy = "秀丽";//男孩名字
            string girl = "伟强";//女孩名字
            string temp;//中间变量
            //把男孩的名字赋值给temp
            temp=boy;
            //把女孩的名字赋值给男孩
            boy=girl;
            //把temp中的名字赋值给女孩
            girl = temp;
            Console.WriteLine("男孩叫"+boy+" 女孩叫"+girl);
        }
    }
}

C#的数据类型

字符类型

char:存储用 '' (单引号)括起来的一个字符

字符串类型

string:存储用“”(双引号)括起来的一串字符

数字类型

int:存储整数

双精度浮点型

double:存储小数

注意:类型相同才能赋值

布尔类型

bool是特殊的类型,只会输出false或true

例子

    C#    17行

    C#    17行

using System;

namespace studyConsole
{
    internal class Program
    {
        public static void Main(string[] args)
        {
            string name = "曹少钦"; //姓名,string类型
            char sex = '男'; //性别,char类型
            int age = 19; //年龄,int类型
            double height = 1.72; //身高,double类型
            Console.WriteLine("我叫{0},是{1}生,今年{2}岁,身高{3}米。", name, sex, age, height);
        }
    }
}

C#的类型转换

自动类型转换:2种不同类型的数据运算,低精度类型会自动转换为较高精度的类型.

强制类型转换:无法自动转换为我们需要的类型,可以用强制类型转换

注意:double 型强制转换为int型将失去小数部分

例子

    C#    15行

    C#    15行

using System;

namespace studyConsole
{
    internal class Program
    {
        public static void Main(string[] args)
        {
            double d = 2.5;
            int x = (int)(d + 1);
            Console.WriteLine(x);
        }
    }
}

C#的标识符命名规则

标识符:程序中的变量名、常量名、类名、方法名等;

规则:

  • 标识符只能由英文字母、数字和下划线组成,不能包含空格和其他字符。

  • 变量名不能用数字开头。

  • 不能用关键字当变量名。

例子

    C#    16行

    C#    16行

using System;

namespace studyConsole
{
    internal class Program
    {
        public static void Main(string[] args)
        {
            int _num1 = 5;//第一个加数
            int _num2 = 7;//第二个加数
            int sum=_num1+_num2;//求和
            Console.WriteLine("和是{0}",sum);//打印结果
        }
    }
}

C#的运算符优先级

括号

一元运算符:算术运算,逻辑运算,赋值运算等

注意:优先级相同的运算符从左向右计算(赋值运算符相反)。

例子

    C#    16行

    C#    16行

using System;

namespace Test
{
    class Program
    {
        static void Main(string[] args)
        {
            int x=1;
            bool a = (++x * x) > 3;
            bool b =a;//赋值
            Console.WriteLine(a==b);
        }
    }
}

C#中的算术运算符

加:[+] 加号有2个用途:当用加号连接两个数字时,会计算出这两个数字的和。
当加号两边包含字符串的时候,会把两边的表达式连接成新的字符串

减:[-] 减号的作用就是减法。

乘:[*] 乘号的作用是求2数的乘积。

除:[/] 除号的作用是求2数相除的商。
但是,2个整数相除,结果仅保留整数部分,小数部分会被舍去

取余:[%] 的作用是求两个数字相除的余数(求某数是否能被另外一个数整除)

自加运算符和自减运算符:[++,--] 变量的自加和自减

比较运算符:[>,>=,<,<=,==,!=] 比较数字大小,或者比较数字相等的运算符

    C#    17行

    C#    17行

using System;

namespace studyConsole
{
    internal class Program
    {
        public static void Main(string[] args)
        {
            double salary = 6000.00;//基本工资
            double prize = 3200.00;//奖金
            double tax = 4500.00;//交税
            Console.WriteLine("我的工资奖金总额是{0}元",salary+prize);
            Console.WriteLine("我的税后收入是{0}元",salary+prize-tax);
        }
    }
}

    C#    14行

    C#    14行

using System;

namespace studyConsole
{
    internal class Program
    {
        public static void Main(string[] args)
        {
            int year = 2015;//年份
            Console.WriteLine(year%4);//求年份除以4的余数
        }
    }
}

    C#    22行

    C#    22行

using System;

namespace Test
{
    class Program
    {
        static void Main(string[] args)
        {
            int x = 5;
            int y = 5;
            int z = 5;
            //x++;//如果消除此行注释,先赋值给变量x然后进行加1,即此步执行完毕后x就是6,否则x就是5
            //Console.Write(x++);//如果消除此行注释,先赋值给变量x然后进行加1,即此步执行完毕后x就是6,否则x就是5,因此会在控制台打印出5而不是6,因为此段未执行完毕
            //++x;//如果消除此行注释,先进行加1然后赋值给变量x,即此步不管是否执行完毕x都是6
            //Console.Write(++x);//如果消除此行注释,先进行加1然后赋值给变量x,即此步不管是否执行完毕x都是6,因此会在控制台打印出是6
            Console.Write(x);//上步已执行自加运算,因此此时输出应为6
            Console.Write(++y);
            Console.Write(++z);
        }
    }
}

    C#    17行

    C#    17行

using System;

namespace Test
{
    class Program
    {
        static void Main(string[] args)
        {
            double x = 3.5;
            int y = 3;
            //布尔运算符只会输出true或false
            Console.WriteLine((int)x>y);//3>3,不满足条件就是false
            Console.WriteLine((int)x<=y);//3<3或3=3,满足一个条件结就是rue
        }
    }
}

逻辑运算符

逻辑运算符:[逻辑非( ! )、逻辑与( && )、逻辑或( || )] 逻辑非用来对某一个 bool 类型表达式取反,逻辑运算符用来连接多个 bool 类型表达式,实现多个条件的复合判断。&& 运算符,两边同真才算真,一边为假就算假; || 运算符,一边为真即为真,两边同假才是假。

    C#    15行

    C#    15行

using System;

namespace Test
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine(true||false);//输出True
            Console.WriteLine(true&&false);//输出False
            Console.WriteLine(!false);//输出True
        }
    }
}

赋值运算符

"=":对不同的变量,数字,字符串或对象等进行赋值

"+=","-=","=","/","%=":加,减,乘,除,取余赋值

    C#    17行

    C#    17行

using System;

namespace Test
{
    class Program
    {
        static void Main(string[] args)
        {
            double x, y;
            x = y = 2;//从右向左赋值,x、y的值都是2,虽然C#支持,但不建议这样赋值
            x /= 0.5;//除等于
            y -=2;//减等于
            Console.WriteLine(x-y);//输出4
        }
    }
}

条件运算符

条件表达式 ? 分支1 : 分支2

    C#    15行

    C#    15行

using System;

namespace TEST
{
    internal class Program
    {
        public static void Main(string[] args)
        {
            int year = 2015;//年份
            //请填写代码
            Console.WriteLine("今年是{0}",year%4==0?"闰年":"平年");
        }
    }
}

C#中的条件结构

if,if...else

if条件结构

  • if括号内部条件结果为bool类型,只会存在true或者false;

  • 如果为true时才会执行if括号后的花括号内部语句;

  • 否则结束if语句;

    C#    17行

    C#    17行

using System;

namespace TEST
{
    internal class Program
    {
        public static void Main(string[] args)
        {
            int score = 96;//分数
            //判断
            if(score>95){//分支1
                Console.WriteLine("奖励一辆自行车");
            }
        }
    }
}

if..else条件结构

if括号内部条件结果为bool类型,只会存在true或者false;

如果为true时才会执行if括号后的花括号内部语句;

否则执行else后花括号内语句;

    C#    23行

    C#    23行

using System;

namespace TEST
{
    internal class Program
    {
        public static void Main(string[] args)
        {
            int age = 17; //年龄
            if (age > 17) //条件,bool类型
            {
                //分支1
                Console.WriteLine("你是成年人");
            }
            else
            {
                //分支2
                Console.WriteLine("你是小盆友");
            }
        }
    }
}

    C#    23行

    C#    23行

using System;

namespace TEST
{
    internal class Program
    {
        public static void Main(string[] args)
        {
            double price = 4388; //手机的售价
            double salary = 4978.67; //本月实发工资
            //请在这里补充条件判断
            if (salary >= price)
            {
                Console.WriteLine("这月工资够买手机!");
            }
            else
            {
                Console.WriteLine("这月工资不够买手机!");
            }
        }
    }
}

嵌套的if结构

if条件语句包含一个或多个if,if...else条件结构的语句

    C#    36行

    C#    36行

using System;

namespace TEST
{
    internal class Program
    {
        public static void Main(string[] args)
        {
            char sex = '男'; //性别
            int age = 21; //年龄
            if (sex == '女') //请填写条件
            {
                if (age >= 20)
                {
                    Console.WriteLine("达到法定婚龄啦");
                }
                else
                {
                    Console.WriteLine("没有达到哟");
                }
            }
            else
            {
                if (age >= 22)
                {
                    Console.WriteLine("达到法定婚龄!");
                }
                else
                {
                    Console.WriteLine("没有达到!");
                }
            }
        }
    }
}

多重if结构

    C#    31行

    C#    31行

using System;

namespace TEST
{
    internal class Program
    {
        public static void Main(string[] args)
        {
            string job = "科员";
            if (job == "局长")
            {
                Console.WriteLine("发双黄月饼");
            }
            else if (job == "处长")
            {
                Console.WriteLine("发蛋黄月饼");
            }
            //请输入
            else if (job == "科长")
            {
                Console.WriteLine("发枣泥月饼");
            }
            //请输入
            else
            {
                Console.WriteLine("发五仁月饼");
            }
        }
    }
}

switch结构

switch 中的(变量)只能是3种类型:
整型(如 int )、字符型( char )、字符串类型( string )。

    C#    28行

    C#    28行

using System;

namespace TEST
{
    internal class Program
    {
        public static void Main(string[] args)
        {
            string job = "处长"; //职务
            switch (job)
            {
                case "局长":
                    Console.Write("发双黄月饼");
                    break;
                case "处长":
                    Console.Write("发蛋黄月饼");
                    break;
                case "科长":
                    Console.Write("发枣泥月饼");
                    break;
                default:
                    Console.Write("发五仁月饼");
                    break;
            }
        }
    }
}

C#中的循环结构

程序连续的重复一个步骤称为“循环”。循环可以简化我们的代码,减少冗余。

while循环

    C#    21行

    C#    21行

using System;

namespace TEST
{
    internal class Program
    {
        public static void Main(string[] args)
        {
            int y = 5;
            while (y <= 5) //请输入
            {
                Console.Write(y + " ");
                //请输入
                --y;
                if (y <= 0)
                    break;
            }
        }
    }
}

for循环

  • for 循环 ( ; ; ) 中的两个分号是不能缺少的。
  • for循环运行时,首先进行变量声明和赋值;
  • 接下来判断循环条件,若条件为 true ,则执行循环体一次,若条件为 false ,则结束循环;
  • 执行循环体后,进行变量自加。然后会进入下一次循环。

    C#    16行

    C#    16行

using System;

namespace TEST
{
    internal class Program
    {
        public static void Main(string[] args)
        {
            for (int i = 1; i <= 12; i++) //请填写代码
            {
                Console.WriteLine(i + " ");
            }
        }
    }
}

do...while循环

    C#    19行

    C#    19行

using System;

namespace TEST
{
    internal class Program
    {
        public static void Main(string[] args)
        {
            int x =2;
            do
            {
                x++;
                Console.Write(x+" ");
            }
            while(x>2&&x<=4);
        }
    }
}

小结

continue结构

当程序执行到到 continue; 的时候,会立即停止本次循环体,直接进入下一次循环

    C#    19行

    C#    19行

using System;

namespace TEST
{
    internal class Program
    {
        public static void Main(string[] args)
        {
            for (int x = 1; x < 10; x++)
            {
                //请添加代码,过滤3和8
                if (x == 3 || x == 8)
                    continue;
                Console.Write(x);
            }
        }
    }
}

break结构

break 关键字可以用在循环中,作用是“结束循环”。

    C#    19行

    C#    19行

using System;

namespace TEST
{
    internal class Program
    {
        public static void Main(string[] args)
        {
            for (int x = 1; x < 10; x++)
            {
                //请添加代码,过滤3和8
                if (x == 3 || x == 8)
                    break;
                Console.Write(x);
            }
        }
    }
}

嵌套循环

在一个循环体中包含另一个循环,称为“嵌套循环”。
当2个循环嵌套的时候,外层循环体执行一次,内层循环体执行 n 次( n 是内层循环的次数)。

    C#    21行

    C#    21行

using System;

namespace TEST
{
    internal class Program
    {
        public static void Main(string[] args)
        {
            for (int y = 1; y <= 7; y++)
            {
                for (int x = 1; x <= y; x++)
                {
                    Console.Write(x);
                }

                Console.WriteLine();
            }
        }
    }
}

foreach循环

数组的概念在![C#的数组]二级目录中

  • for 循环使我们可以通过索引访问数组元素;而 foreach 循环则可以不依赖索引而读取每一个数组元素。

    C#    18行

    C#    18行

using System;

namespace TEST
{
    internal class Program
    {
        public static void Main(string[] args)
        {
            string[] t = new string[] {"C", "Sh", "a", "rp"};
            //遍历字符串数组t
            foreach (string i in t)
            {
                Console.Write(i);
            }
        }
    }
}

C#的数组

  • 用于存储大量的变量值,例如成千上万个数值
    索引:通过索引的不同区分内部变量值,按顺序命名
  • 数组的索引从 0 开始递增
  • 数组经过初始化以后,数组元素有默认的初始值
    double 类型为 0.0 , int 类型为 0 ,
    char 类型为 'a' , bool 类型为 false ,
    string 类型为 null
  • 数组对象.Length可以返回此对象的长度,也就是存储变量的个数(因此可以用此遍历一个数组)

    C#    21行

    C#    21行

using System;

namespace TEST
{
    internal class Program
    {
        public static void Main(string[] args)
        {
            int[] age = new int[4]; //声明并初始化长度为4的整形数组
            //为数组元素赋值
            age[0] = 18;
            age[1] = 20;
            age[2] = 23;
            age[3] = 17;
            if (age.Length > 0)
                Console.WriteLine("四名同学的年龄是::{0},{1},{2},{3}",
                    age[0], age[1], age[2], age[3]);
        }
    }
}

    C#    22行

    C#    22行

using System;

namespace TEST
{
    internal class Program
    {
        public static void Main(string[] args)
        {
            //声明“职位”数组,初始化为:"经理","项目主管","技术总监","财务主管"
            string[] job = new string[4];
            job[0] = "经理";
            job[1] = "项目主管";
            job[2] = "技术总监";
            job[3] = "财务主管";
            for (int i = 0; i < job.Length; i++)
            {
                Console.WriteLine(job[i]); //打印职位
            }
        }
    }
}

二维数组

二维数组,就是以数组作为元素的数组。

    C#    14行

    C#    14行

using System;

namespace TEST
{
    internal class Program
    {
        public static void Main(string[] args)
        {
            char[,] ch = {{'我', '是', '软'}, {'件', '工', '程'}, {'师', '啦', '!'}};
            Console.WriteLine("{0}{1}{2}", ch[1, 1], ch[1, 2], ch[2, 0]);
        }
    }
}

猜你喜欢

转载自blog.csdn.net/HuYingZuo/article/details/81327880