VR引擎程序设计基础——C#第二课

199 阅读6分钟

1.jpg

一、字符串类型

1. @符号在字符串中的另一使用

① @符号有什么作用 取消转义 可以正常显示反斜杠

②字符串正常情况下只能单行显示 如果要多行显示 可以使用到@符号

string str1 = @"dfjkdjflk
                            dfddfdf\t\n";
            Console.WriteLine(str1);

2.字符串拼接 —— “+”

Console.WriteLine("13" + "+" + "14" + "=" + "27");

二、类型转换

1.三种常用转换

5e098e301fa44d45a1dcc6b3655ce07a_tplv-k3u1fbpfcp-zoom-in-crop-mark_3024_0_0_0.webp

int get1=Console.Read();  //获取控制台输入的一个字符,返回值是一个整型类型  换行符是可以读取到的
Console.WriteLine(get1+2); // 2这个字符对应的十进制数是50   所以结果是52
string str2 = Console.ReadLine();
            int num1 = Convert.ToInt32(str2);
            Console.WriteLine(num1 + 10);

2.变量的命名规则

①大驼峰命名 所有单词的首字母都大写 如 ToInt32

②小驼峰命名 第一单词首个字母小写,第二个单词首字母大写 myName

三、在控制台输入

1. Read和ReadLine区别

  1. console.Read()每次只读取一个字符,获取控制台输入的字符,返回值是该字符对应的十进制数,也就是说返回值是一个整数类型
  2. console.ReadLine()每次读取一个字符串,获取控制台输入的字符串,返回值是一个字符串,如果输入的是数字则需要用Convert.ToInt32()转成整数

2.练习题

例:定义三种水果变量的价格,用户提示输入,分别请输入购买水果的斤数,输入购买香蕉的斤数,输入购买橙子的斤数,最后计算出水果的总价。

int AppleUnitPrice = 1;
int BananaUnitPrice = 2;
int OrangeUnitPrice = 3;
Console.Write("请输入苹果购买的斤数:");
int AppleWeight = Convert.ToInt32(Console.ReadLine());
Console.Write("请输入香蕉购买的斤数:");
int BananaWeight = Convert.ToInt32(Console.ReadLine());
Console.Write("请输入橙子购买的斤数:");
int OrangeWeight = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("总价为:" + (AppleUnitPrice * AppleWeight + BananaUnitPrice * BananaWeight + OrangeUnitPrice * OrangeWeight));

2367b63f96394af1afa45b18a530931a_tplv-k3u1fbpfcp-zoom-in-crop-mark_3024_0_0_0.webp

三、交换两个变量的值

1.交换值的前提是类型要一致

2.通过中间变量来做值的交换

python交换值的写法 a,b=b,a
c#交换值的写法 需要用到一个中间变量来存其中一个变量的值

int a = 3, b = 4;
int temp = a;//先将a的值存到temp中
a = b;//再将b的值赋予给a
b = temp;//将temp的值赋予给b

四、字符串格式化输出

image.png

1.大括号是用来占位 括号里面表示后面变量的编号 比如0表示后面变量的第一个

2.练习题:结合算术运算符和输入,格式化输出,实现一个算法可以把任意一个两位数的个位数和十位数分离出来 比如45 分离出来十位数是4,个位数是5

int num1 = Convert.ToInt32(Console.ReadLine());
int num2 = num1 / 10;  
int num3 = num1 % 10;
Console.WriteLine("十位数是:{0},个位数是:{1}", num2, num3);

de586c5a0e844082a2014c2874c1ccb9_tplv-k3u1fbpfcp-zoom-in-crop-mark_3024_0_0_0.webp

五、运算符

1.关系运算符

>大于 <小于 >=大于等于 <=小于等于 !=不等于 ==等于

0b4b182a6ce9400da2beb5584eb0e458_tplv-k3u1fbpfcp-zoom-in-crop-mark_3024_0_0_0.webp

 bool check3 = 4 == 5;
 Console.WriteLine(check3);

2.赋值运算符

597f6242ad85449daea9c9143e835968_tplv-k3u1fbpfcp-zoom-in-crop-mark_3024_0_0_0.webp

int num7 = 3;
int num8 = 4;
num7 += num8;
Console.WriteLine(num7);

3.逻辑运算符

c2bd6799639b4008b582fc42935a2b7a_tplv-k3u1fbpfcp-zoom-in-crop-mark_3024_0_0_0.webp

①a&&b 并且的意思,表示说a和b的结果必须都为真,式子的结果才为真 只要有一个假结果就是假

②a||b 或的意思,表示说a和b的结果只要有一个真 结果就是真,都为假结果就是假

Console.WriteLine(3 > 4 && 4 > 3); //结果就是假 false  
Console.WriteLine(3 > 4 || 4 > 3); //结果就是真 true 
Console.WriteLine(!(4 > 3)); //结果就是false  总结:要进行逻辑判断两边的式子必须都是布尔类型

4.运算符优先级

8ec0c0a877fd4fa28ae6f899cbf3bff7_tplv-k3u1fbpfcp-zoom-in-crop-mark_3024_0_0_0.webp

六、练习题

  1. 练习题一

image.png

 cd

2. 练习题二

image.png

Console.Write("请输入三位的正整数:");
            int num = Convert.ToInt32(Console.ReadLine());
            int a = num % 10;
            int b = num / 10 % 10;
            int c = num / 100;
            Console.WriteLine("按数字的相反顺序输出:{0}{1}{2}", a,b,c);

七、条件分支

1.单分支

判断一个东西,只有两种情况  比如说输(分少)和赢(分多)  这里分少和分多就是判断条件

2.双分支

int num9 = 3;
int num10 = 5;
if (num10 > num9)  //括号中就表示要判断的条件 如果条件为真就会执行语句1中的代码,为假就执行else中的代码
{
                //执行语句1 
    Console.WriteLine("num10大于num9");
}
else
{
                //执行语句2
    Console.WriteLine("num10小于num9");
}

例:

d8ff7477c3bb4a8ebe3c790270cff5f9_tplv-k3u1fbpfcp-zoom-in-crop-mark_3024_0_0_0.webp

3.多分支

例:比如动物园门票  60岁以上免费  14到59全票   小于14半票
Console.Write("请输入你的年龄");
int year = Convert.ToInt32(Console.ReadLine());
if (year>=60)
{
    Console.WriteLine("您是60岁以上人员,免费");
}else if (14<year && year<59)
{
    Console.WriteLine("您要全票购买才能进去");
}else
{
    Console.WriteLine("您是半票");
}
例:成绩评分
int Cj = Convert.ToInt32(Console.ReadLine());
if(Cj>=90 && Cj<=100)
{
    Console.WriteLine("A");
}
else if(Cj>=70 && Cj<=89)
{
    Console.WriteLine("B");
}
else if(Cj>=60 && Cj<=69)
{
    Console.WriteLine("C");
}
else if(Cj<60)
{
    Console.WriteLine("D");
}

八、练习题

323a12b265254d54a9c709cb82035b3d_tplv-k3u1fbpfcp-zoom-in-crop-mark_3024_0_0_0.webp

/*
            int Cj = Convert.ToInt32(Console.ReadLine());
            if(Cj>=90 && Cj<=100)
            {
                Console.WriteLine("A");
            }
            else if(Cj>=70 && Cj<=89)
            {
                Console.WriteLine("B");
            }
            else if(Cj>=60 && Cj<=69)
            {
                Console.WriteLine("C");
            }
            else if(Cj<60)
            {
                Console.WriteLine("D");
            }
            */
            //坐标系  
            /* 
             Console.WriteLine("请输入x");

             int x = Convert.ToInt32(Console.ReadLine());
             Console.WriteLine("请输入y");
             int y = Convert.ToInt32(Console.ReadLine());
             if (x > 0 && y > 0)
             {
                 Console.WriteLine("第一象限");
             }
             else if(x > 0 && y < 0)
             {
                 Console.WriteLine("第二象限");
             }
             else if (x < 0 && y > 0)
             {
                 Console.WriteLine("第三象限");
             }
             else
             {
                 Console.WriteLine("第四象限");
             }*/
            //三角形
            /* 
             int a1 = Convert.ToInt32(Console.ReadLine());
             Console.WriteLine("请输入边a1");
             int b1 = Convert.ToInt32(Console.ReadLine());
             Console.WriteLine("请输入边b1");
             int c1 = Convert.ToInt32(Console.ReadLine());
             Console.WriteLine("请输入边c1");
             if (a + b > c && a + c > b && b + c > a)
             {
                 Console.WriteLine("上述输入的三条边满足需求");
             }
             else
             {
                 Console.WriteLine("上述输入的三条边不满足需求");
             }
            */
            //闰年的条件 能被400整除  或者 能被4整除但是不能被100整除
            //(year%400==0 ||(year%4==0 && year%100!=0))
            /*
            Console.WriteLine("输入一个年份");
            int year = Convert.ToInt32(Console.ReadLine());
            if (year % 400 == 0)
                Console.WriteLine("Yes");
            else if (year % 4 == 0 && year % 100 != 0)
                Console.WriteLine("Yes");
            else
                Console.WriteLine("No");
            */
            //转绝对值  
            /*
             Console.Write("请输入一个非零整数:");
             int num = Convert.ToInt32(Console.ReadLine());
             if (num < 0)
             {
                 Console.Write("这是一个负数。");
                 Console.Write("绝对值为:{0}", -num);
             }
             else if (num > 0)
             {
                 Console.Write("这是一个正数。");
                 Console.Write("绝对值为:{0}", num);
             }
             else
             {
                 Console.Write("该数为0");
             }
            */
            /*
            Console.Write("请输入一个整数:");
            int num1 = Convert.ToInt32(Console.ReadLine());
            Console.Write("请输入一个整数:");
            int num2 = Convert.ToInt32(Console.ReadLine());
            Console.Write("请输入一个整数:");
            int num3 = Convert.ToInt32(Console.ReadLine());
            if (num1 > num2 && num1 > num3)
            {
                Console.WriteLine(num1 * num1);
            }
            else if (num2 > num1 && num2 > num3)
            {
                Console.WriteLine(num2 * num2);
            }
            else if (num3 > num1 && num3 > num2)
            {
                Console.WriteLine(num3 * num3);
            }
            */
            /*
            Console.WriteLine("第一个大写字母:");
            char a = Convert.ToChar(Console.ReadLine());
            int num1 = Convert.ToInt32(a);
            Console.WriteLine("第二个大写字母:");
            char b = Convert.ToChar(Console.ReadLine());
            int num2 = Convert.ToInt32(b);
            if (num1> num2)
               Console.WriteLine("{0}>{1}",a ,b );
            else
                Console.WriteLine("{0}<{1}", a, b);
            */    

九、switch 分支语句

switchif一样都表示条件分支 不是函数  

381c3087013e487084487af7f96ca0f9_tplv-k3u1fbpfcp-zoom-in-crop-mark_3024_0_0_0.webp

            switch (num)  //会传一个参数 用于和下面case中的值进行比对  然后这里不用调用的程序到这里会执行
            {
                case 1:
                case 2:  //如果case之间没有其他语句表示说只要满足这两个case的其中一个都会执行case2中的代码
                    Console.WriteLine(2);
                    break;
                case 3:
                    Console.WriteLine(3);
                    break;
                default: //默认分支,如果以上的case都比对不成功,那么就会执行defalut中的代码 
                    Console.WriteLine("默认");
                    break;
            }

2.jpg

十、第二节课源码

using System;

namespace demo0923
{
    class Programe
    {
        static void Main(string[] args)
        {
            // 除号    
            int a = 3;
            int b = 2;
            Console.WriteLine(a / b);  //结果是一个整数  
            double c = 3.0;
            Console.WriteLine(a / c);  //如果除以一个小数,除非整除结果就是整数,否则就是小数

            char d = 'd'; // 能够转成对应的十进制整数

            // @符号有什么作用  取消转义   可以正常显示反斜杠
            // 字符串正常情况下只能单行显示   如果要多行显示   可以使用到@符号 
            string str1 = @"dfjkdjflk
                            dfddfdf\t\n";
            Console.WriteLine(str1);

            //字符串拼接   +  
            Console.WriteLine("13" + "+" + "14" + "=" + "27");

            // 变量  声明 初始化才能正常使用   命名规则 (由数字字母下划线组成 首个字符不能是数字)
            //c#中的输入 
            //int get1=Console.Read();  //获取控制台输入的一个字符,返回值是一个整型类型  换行符是可以读取到的
            //Console.WriteLine(get1+2); // 2这个字符对应的十进制数是50   所以结果是52

            //string str2=Console.ReadLine();  //获取控制台输入的一个字符串  返回值是一个字符串  

            //类型转换   Convert.ToInt32() 
            //举例 ReadLine得到的是一个字符串但是我输入的是一个数字,就想要得到这个数字怎么办,类型转换
            //int num1 = Convert.ToInt32(str2);
            //变量的命名规则 大驼峰命名 所有单词的首字母都大写  如 ToInt32 
            //小驼峰命名 第一单词首个字母小写,第二个单词首字母大写  myName 
            /*Console.WriteLine(num1+10);
            int AppleUnitPrice = 1;
            int BananaUnitPrice = 2;
            int OrangeUnitPrice = 3;
            Console.Write("请输入苹果购买的斤数:");

            int AppleWeight = Convert.ToInt32(Console.ReadLine());
            Console.Write("请输入香蕉购买的斤数:");
            int BananaWeight = Convert.ToInt32(Console.ReadLine());
            Console.Write("请输入橙子购买的斤数:");
            int OrangeWeight = Convert.ToInt32(Console.ReadLine());
            Console.WriteLine("总价为:" + (AppleUnitPrice * AppleWeight + BananaUnitPrice * BananaWeight + OrangeUnitPrice * OrangeWeight));*/

            //python交换值的写法   a,b=b,a   
            //c#交换值的写法 需要用到一个中间变量来存其中一个变量的值   

            int num2 = 23, num3 = 12;
            int temp = num2;
            num2 = num3;
            num3 = temp;

            // “果的总价为:变量”  原来的方法用+拼接  如果变量多的时候要拼很多个  
            //可以用到格式化输出  
            //Console.WriteLine("水果的总价为:{0},其中苹果的价格为{0}",temp,num2);
            //大括号是用来占位 括号里面表示后面变量的编号   比如0表示后面变量的第一个  

            /*int num4 = Convert.ToInt32(Console.ReadLine());
            int num5 = num4 / 10;  //23
            int num6 = num4 % 10;  
            Console.WriteLine("十位数是:{0},个位数是:{1}",num5,num6);*/

            //布尔   bool
            bool check1 = 4 > 5; //关系式得到的结果是一个布尔值  这里得到的结果是 false  
            //关系运算符   >大于  <小于   >=大于等于   <=小于等于   !=不等于  ==等于 

            bool check2 = 4 != 5;
            bool check3 = 4 == 5;
            bool check4 = false;
            Console.WriteLine(check3);

            //赋值运算符   =   +=  -=  *=    /=    %=  
            // 比如 a+=b 相当于  a=a+b  
            int num7 = 3;
            int num8 = 4;
            num7 += 4;
            Console.WriteLine(num7);

            //逻辑运算符  与&&  或||  非!取反的操作  
            // a&&b   并且的意思,表示说a和b的结果必须都为真,式子的结果才为真  只要有一个假结果就是假 
            // a||b  或的意思,表示说a和b的结果只要有一个真 结果就是真,都为假结果就是假  
            Console.WriteLine(3 > 4 && 4 > 3); //结果就是假 false  
            Console.WriteLine(3 > 4 || 4 > 3); //结果就是真 true 
            Console.WriteLine(!(4 > 3)); //结果就是false  总结:要进行逻辑判断两边的式子必须都是布尔类型

            //条件分支    
            //单分支  判断一个东西,只有两种情况  比如说输(分少)和赢(分多)  这里分少和分多就是判断条件
            int num9 = 3;
            int num10 = 5;
            if (num10 > num9)  //括号中就表示要判断的条件 如果条件为真就会执行语句1中的代码,为假就执行else中的代码
            {
                //执行语句1 
                Console.WriteLine("num10大于num9");

            }
            else
            {
                //执行语句2
                Console.WriteLine("num10小于num9");
            }
            //多分支  有很多种情况   比如动物园门票  60岁以上免费  14到59全票   小于14半票 
            /*Console.Write("请输入你的年龄");
            int year = Convert.ToInt32(Console.ReadLine());
            if (year>=60)
            {
                Console.WriteLine("您是60岁以上人员,免费");
            }else if (14<year && year<59)
            {
                Console.WriteLine("您要全票购买才能进去");
            }else
            {
                Console.WriteLine("您是半票");
            }*/
            /*int Cj = Convert.ToInt32(Console.ReadLine());
            if(Cj>=90 && Cj<=100)
            {
                Console.WriteLine("A");
            }
            else if(Cj>=70 && Cj<=89)
            {
                Console.WriteLine("B");
            }
            else if(Cj>=60 && Cj<=69)
            {
                Console.WriteLine("C");
            }
            else if(Cj<60)
            {
                Console.WriteLine("D");
            }*/
            //坐标系  
            /* Console.WriteLine("请输入x");

             int x = Convert.ToInt32(Console.ReadLine());
             Console.WriteLine("请输入y");
             int y = Convert.ToInt32(Console.ReadLine());
             if (x > 0 && y > 0)
             {
                 Console.WriteLine("第一象限");
             }
             else if(x > 0 && y < 0)
             {
                 Console.WriteLine("第二象限");
             }
             else if (x < 0 && y > 0)
             {
                 Console.WriteLine("第三象限");
             }
             else
             {
                 Console.WriteLine("第四象限");
             }*/
            //三角形
           /* int a1 = Convert.ToInt32(Console.ReadLine());
            Console.WriteLine("请输入边a1");
            int b1 = Convert.ToInt32(Console.ReadLine());
            Console.WriteLine("请输入边b1");
            int c1 = Convert.ToInt32(Console.ReadLine());
            Console.WriteLine("请输入边c1");
            if (a + b > c && a + c > b && b + c > a)
            {
                Console.WriteLine("上述输入的三条边满足需求");
            }
            else
            {
                Console.WriteLine("上述输入的三条边不满足需求");
            }*/
            //闰年的条件 能被400整除  或者 能被4整除但是不能被100整除
            //(year%400==0 ||(year%4==0 && year%100!=0))
            //转绝对值  
            /* Console.Write("请输入一个非零整数:");
             int num = Convert.ToInt32(Console.ReadLine());
             if (num < 0)
             {
                 Console.Write("这是一个负数。");
                 Console.Write("绝对值为:{0}", -num);
             }
             else if (num > 0)
             {
                 Console.Write("这是一个正数。");
                 Console.Write("绝对值为:{0}", num);
             }
             else
             {
                 Console.Write("该数为0");
             }*/
           /* Console.Write("请输入一个整数:");
            int num1 = Convert.ToInt32(Console.ReadLine());
            Console.Write("请输入一个整数:");
            int num20 = Convert.ToInt32(Console.ReadLine());
            Console.Write("请输入一个整数:");
            int num21 = Convert.ToInt32(Console.ReadLine());
            if(num1>num2&&num1>num3)
            {
                Console.WriteLine(num1*num1);
            }
            else if (num20 > num1 && num20 > num21)
            {
                Console.WriteLine(num20*num20);
            }
            else if (num21 > num1 && num21> num20)
            {
                Console.WriteLine(num21*num21);
            }*/
            //switch  分支语句
            int num = Convert.ToInt32(Console.ReadLine());
            //switch和if一样都表示条件分支 不是函数  
            switch (num)  //会传一个参数 用于和下面case中的值进行比对  然后这里不用调用的程序到这里会执行
            {
                case 1:
                case 2:  //如果case之间没有其他语句表示说只要满足这两个case的其中一个都会执行case2中的代码
                    Console.WriteLine(2);
                    break;
                case 3:  
                    Console.WriteLine(3);
                    break;
                default: //默认分支,如果以上的case都比对不成功,那么就会执行defalut中的代码 
                    Console.WriteLine("默认");
                    break;
            }

        }

    }
}

3.jpg